Felx布局

158 阅读2分钟

1.给父盒子添加 display:flex ,其子元素就拥有了行内块的特点,在一行内显示并且可以设置宽度和高度.

示例代码:

    <style>
      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }
      .box {
        display: flex;
        margin: 100px auto 0;
        width: 1200px;
        height: 200px;
        background-color: pink;
      }
      h1 {
        width: 200px;
        height: 80px;
        background-color: green;
      }
      p {
        width: 200px;
        height: 80px;
        background-color: red;
      }
      span {
        width: 200px;
        height: 80px;
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <h1></h1>
      <p></p>
      <span></span>
    </div>
  </body>
</html>


示例图片: image.png 2子元素默认从左开始依次排列,可以通过justify-content属性来设置子元素的排列方式.

居中排列: justify-content: center ;

.box {
        display: flex;
          /* 居中排列 */
        justify-content:center ;
        margin: 100px auto 0;
        width: 1200px;
        height: 200px;
        background-color: pink;
      }

示例图片:

image.png 沿主轴均匀排列,空白间距均分在盒子两侧 : justify-content: space-around;

.box {
        display: flex;
        /* 沿主轴均匀排列,空白间距均分在盒子两侧 */
        justify-content: space-around;
        margin: 100px auto 0;
        width: 1200px;
        height: 200px;
        background-color: pink;
      }

示例图片:

image.png 沿主轴均匀排列,空白间距均分在盒子两侧 : justify-content: space-around;

.box {
        display: flex;
        /* 沿主轴均匀排列,空白间距均分在相邻盒子之间 */
        justify-content: space-between;
        margin: 100px auto 0;
        width: 1200px;
        height: 200px;
        background-color: pink;
      }

示例图片:

image.png

沿主轴均匀排列,子盒子与父盒子之间间距相等 : justify-content: space-evenly;

        display: flex;
        /* 沿主轴均匀排列,子盒子与父盒子之间间距相等 */
        justify-content: space-evenly;
        margin: 100px auto 0;
        width: 1200px;
        height: 200px;
        background-color: pink;
      }

示例图片:

image.png 3.可以给子元素设置flex属性,修改弹性盒子伸缩比

      /* flex 属性只占用父盒子剩余尺寸,
      span标签的宽度固定,并不会受到影响 
      flex的属性值表示子盒子所占父盒子剩余尺寸的比值,
      例如:h1 所占剩余尺寸的1/3,p所占剩余尺寸的2/3.*/
      h1 {
        flex: 1;
        height: 80px;
        background-color: green;
      }
      p {
        flex: 2;
        height: 80px;
        background-color: red;
      }
      span {
        width: 200px;
        height: 80px;
        background-color: blue;
      }

示例图片:

image.png 4.当父盒子的宽度小于子盒子的宽度之合时,给父盒子添加 flex-wrap: wrap;属性可以实现自动换行

        display: flex;
        /* 自动换行 */
        flex-wrap: wrap;
        /* 沿主轴均匀排列,子盒子与父盒子之间间距相等 */
        justify-content: space-evenly;
        margin: 100px auto 0;
        width: 1200px;
        height: 200px;
        background-color: pink;
      }
      h1 {
        width: 800px;
        height: 800px;
        background-color: green;
      }
      p {
        width: 200px;
        height: 80px;
        background-color: red;
      }
      span {
        width: 1000px;
        height: 80px;
        background-color: blue;
      }

示例图片:

image.png 4.1子元素在竖直方向的布局可以通过align-content属性来设置,其主要属性值有 start,space-around, space-between,space-evenly.用法和justify-content一样. 例如:

.box {
        display: flex;
        /* 自动换行 */
        flex-wrap: wrap;
        /* 从上开始依次排列 */
        align-content: start;
        margin: 100px auto 0;
        width: 1200px;
        height: 200px;
        background-color: pink;
      }

示例图片:

image.png