css3伸缩盒模型第二章(侧轴相关)

css3伸缩盒模型第二章(侧轴相关)

侧轴对齐方式

侧轴对齐我们需要分两种情况,一种是多行,一种是单行,两种设置方式不同

  • 属性:align-items 单行
  • 属性: align-content 多行

单行 align-items

  • flex-start: 侧轴的起点对齐
  • flex-end :侧轴的终点对齐。
  • center :侧轴的中点对齐。
  • baseline : 伸缩项目的第一行文字的基线对齐。
  • stretch :如果伸缩项目未设置高度,将占满整个容器的高度。------ (默认值)

基本代码

markdown 复制代码
<title>06.侧重对齐方式</title>
  <style>
     .outer {
       width: 1000px;
       height: 600px;
       background-color: #888;
       margin: 0 auto;

       /* 开启弹性盒子 */
       display: flex;

       /* 主轴方向默认 */
       flex-direction: row;


       /* 默认不换行 */
       flex-wrap: nowrap;


       /* 侧轴方向 */

       /* 第一种方式    从上到下 */
       align-items: flex-start;


       /* 第二种方式   从下到上 */
       /* align-items: flex-end;  */


       /* 第三种方式   居中 */
       /* align-items: center; */
       

       /* 第四种方式   基线对齐 */
       /* align-items: baseline; */

       /* 第五种方式    自动拉伸填满   需要将元素高度都设置为0  */
       /* align-items: stretch; */
     }




     .inner {
       width: 200px;
       height: 200px;
       background-color: chocolate;
       border: 1px solid black;
       box-sizing: border-box;
     }

     .inner2 {
       height: 300px;
      
     }

     .inner3 {
       height: 100px;
     }

     .inner_stre {
       width: 200px;
       background-color: paleturquoise;
       border: 1px solid black;
     }

     .inner-baseline {
      font-size: 80px;
     }

  </style>
</head>
<body>
  <div class="outer">
      <div class="inner">1</div>
      <div class="inner inner2">2</div>
      <div class="inner inner3">3</div>
  </div>

  <!-- 基线对齐    font-size: 80px;   -->
  <!-- <div class="outer">
    <div class="inner">1X</div>
    <div class="inner inner2 inner-baseline">2X</div>
    <div class="inner inner3">3X</div>
  </div> -->

  <!-- 拉伸 默认方式-->
  <!-- <div class="outer">
    <div class="inner_stre">1</div>
    <div class="inner_stre">2</div>
    <div class="inner_stre">3</div>
  </div> -->
</body>

flex-start

侧轴的起点对齐,也就是从上到下

align-items: flex-start;

flex-end

从侧轴的重点方向,从下到上

/* 第二种方式 从下到上 */

​ align-items: flex-end;

center

项目居中对齐;

/* 第三种方式 居中 */

​ align-items: center;

baseline

基线对齐,我们需要将项目里面的内容设置一个X的字母,然后将字母调整大一些,这个时候观察,就是以基线对齐了;

  • 代码

    markdown 复制代码
     .inner-baseline {
          font-size: 80px;
         }
     
     <!-- 基线对齐    font-size: 80px;   -->
      <div class="outer">
        <div class="inner">1X</div>
        <div class="inner inner2 inner-baseline">2X</div>
        <div class="inner inner3">3X</div>
      </div>

    /* 第四种方式 基线对齐 */

    ​ align-items: baseline;

stretch

自动拉伸,也就是说当我们没有设置高度的时候,项目会自动拉伸整个高度,直至完全填充整个父容器的高度

  • 代码
markdown 复制代码
  <div class="outer">
    <div class="inner_stre">1</div>
    <div class="inner_stre">2</div>
    <div class="inner_stre">3</div>
  </div>

/* 第五种方式 自动拉伸填满 需要将元素高度都设置为0 */

​ align-items: stretch;


多行 align-content

我们设置整个容器的高度加到900px,将内容撑开,保证有三行效果,且第一行每个元素高度不同

  • 属性:align-content
  • 属性值:
    • flex-start :与侧轴的起点对齐。
    • flex-end :与侧轴的终点对齐。
    • center :与侧轴的中点对齐。
    • space-between :与侧轴两端对齐,中间平均分布。
    • space-around :伸缩项目间的距离相等,比距边缘大一倍。
    • space-evenly : 在侧轴上完全平分。
    • stretch :占满整个侧轴。------ 默认值

基本代码

markdown 复制代码
<meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>06.侧重对齐方式</title>
  <style>
     .outer {
       width: 1000px;
       height: 900px;
       background-color: #888;
       margin: 0 auto;

       /* 开启弹性盒子 */
       display: flex;

       /* 主轴方向默认 */
       flex-direction: row;

       /* 换行 */
       flex-wrap: wrap;

       /* 多行对齐方式   */
       /* 方式1   全都挨到一起了,不留空隙,节约主义 */
       /* align-content: flex-start; */

       /* 方式2  将上面留着往下挤    */
       /* align-content: flex-end; */


       /* 方式3   居中   两边留相同的间隙 */
       /* align-content: center; */

       /* 方式4  项目间距离是两侧距离的2倍*/
       /* align-content: space-around; */

       /* 方式4   两侧不留间隙,项目间间隙相等*/
       align-content: space-between;

       /* 方式5  间隙均分 */
       /* align-content: space-evenly; */

       /* 方式5   拉伸,全部填充    需要将高度都去掉 */
       /* align-content: stretch; */
     }




     .inner {
       width: 200px;
       height: 200px;
       background-color: plum;
       border: 1px solid black;
       box-sizing: border-box;
       font-size: 30px;
       text-align: center;
       line-height: 200px;
       
     }

     .inner2 {
       height: 300px;
     }

     .inner1 {
       height: 100px;
     }

     .inner_stretch {
       width: 200px;
       background-color: pink;
       border: 1px solid black;
       box-sizing: border-box;
       font-size: 30px;
       text-align: center;
       line-height: 200px;
     }
     

  </style>
</head>
<body>
  <div class="outer">
      <div class="inner">1</div>
      <div class="inner inner2">2</div>
      <div class="inner inner3">3</div>
      <div class="inner">4</div>
      <div class="inner">5</div>
      <div class="inner">6</div>
      <div class="inner">7</div>
      <div class="inner">8</div>
      <div class="inner">9</div>
      <div class="inner">10</div>
      <div class="inner">11</div>
  </div>


  <!-- stretch-->
  <!-- <div class="outer">
    <div class="inner_stretch">1</div>
    <div class="inner_stretch">2</div>
    <div class="inner_stretch">3</div>
    <div class="inner_stretch">4</div>
    <div class="inner_stretch">5</div>
    <div class="inner_stretch">6</div>
    <div class="inner_stretch">7</div>
    <div class="inner_stretch">8</div>
    <div class="inner_stretch">9</div>
    <div class="inner_stretch">10</div>
    <div class="inner_stretch">11</div>
</div> -->

 
</body>
  • 默认效果,设置换行

flex-start

/* 方式1 全都挨到一起了,不留空隙,节约主义 */

​ align-content: flex-start;

flex-end

/* 方式2 将上面留着往下挤 */

​ align-content: flex-end;

center

居中对齐,两边留缝隙

/* 方式3 居中 两边留相同的间隙 */

​ align-content: center;

space-around

项目间距离是两侧距离的2倍,项目与项目间的距离相等

/* 方式4 项目间距离是两侧距离的2倍*/

​ align-content: space-around;

space-between

两侧不留间隙,项目间间隙相等

/* 方式4 两侧不留间隙,项目间间隙相等*/

​ align-content: space-between;

space-evenly

间隙均分,所有剩余的空间按照相同的比例均分

/* 方式5 间隙均分 */

​ align-content: space-evenly;

stretch

拉伸(默认值),全部填充 , 需要将高度都去掉

/* 方式5 拉伸,全部填充 需要将高度都去掉 */

​ align-content: stretch;

  • 代码

    markdown 复制代码
      <div class="outer">
        <div class="inner_stretch">1</div>
        <div class="inner_stretch">2</div>
        <div class="inner_stretch">3</div>
        <div class="inner_stretch">4</div>
        <div class="inner_stretch">5</div>
        <div class="inner_stretch">6</div>
        <div class="inner_stretch">7</div>
        <div class="inner_stretch">8</div>
        <div class="inner_stretch">9</div>
        <div class="inner_stretch">10</div>
        <div class="inner_stretch">11</div>
    </div>
相关推荐
GalenWu5 小时前
对象转换为 JSON 字符串(或反向解析)
前端·javascript·微信小程序·json
zwjapple6 小时前
“ES7+ React/Redux/React-Native snippets“常用快捷前缀
javascript·react native·react.js
数据潜水员6 小时前
插槽、生命周期
前端·javascript·vue.js
2501_907136826 小时前
CSS 学习与工程化实践指南
css
优雅永不过时·6 小时前
实现一个漂亮的Three.js 扫光地面 圆形贴图扫光
前端·javascript·智慧城市·three.js·贴图·shader
春天姐姐8 小时前
vue知识点总结 依赖注入 动态组件 异步加载
前端·javascript·vue.js
Pop–9 小时前
Vue3 el-tree:全选时只返回父节点,半选只返回勾选中的节点(省-市区-县-镇-乡-村-街道)
开发语言·javascript·vue.js
滿9 小时前
Vue3 + Element Plus 动态表单实现
javascript·vue.js·elementui
阿金要当大魔王~~9 小时前
面试问题(连载。。。。)
前端·javascript·vue.js