flex布局 常用css属性

简介: 

        flex布局,又称弹性布局,多用于移动端开发,具有操作方便、布局简单的优势,相较于传统布局,flex布局的PC端兼容性较差,IE11或更低版本仅部分支持,甚至不支持。

        当我们将父元素设为flex布局时(display:flex),子元素的float、clear、vertical-align属性将失效。

        flex布局的原理就是通过给父容器添加flex属性,来控制子元素的位置和排列方式。

父元素常用属性:

1.flex-direction:设置主轴的方向,默认值是 row ,以x的正方向为主轴;

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>flex布局</title>
  <style>
    div {
      width: 400px;
      height: 100px;
      background-color: black;
      padding: 10px;
      display: flex;
      flex-direction: row; /*值为row时可以省略此行代码*/
    }
    div span {
      width: 100px;
      text-align: center;
      font-size: 30px;
    }
    #blue {
      background-color: blue;
    }
    #yellow {
      background-color: yellow;
    }
    #red {
      background-color: red;
    }
  </style>
</head>
<body>
<div>
  <span id="blue">1</span>
  <span id="yellow">2</span>
  <span id="red">3</span>
</div>
</body>
</html>

flex-direction: row 从左至右排列效果图

flex-direction: column 从上至下排列效果图 

flex-direction: row-reverse 从右至左排列效果

 flex-direction: column-reverse 从下至上排列效果

2.justify-content: 设置主轴上子元素的排列方式,默认值为flex-start,当主轴为x轴时,子元素以从左向右的方式进行排列;

justify-content: flex-start 排列效果从左向右,子元素整体左对齐 

justify-content: flex-start 排列效果从左向右,子元素整体右对齐

justify-content: space-around 排列效果为剩余空间平均分配给子元素 

 justify-content: space-between 排列效果为两端对齐,剩余部分中间的子元素平均分配

justify-content: center 设置子元素在主轴上居中排列,如下图,当x为主轴时,排列效果为子元素整体水平居中

3.flex-wrap: 设置子元素是否换行显示,默认值为nowrap,不换行。在flex布局中,子元素默认是沿着轴线一行排列,当出现子元素全部宽度加起来超过父元素宽度时,子元素宽度会出现压缩;

flex-wrap: nowrap 子元素不换行,超长时进行压缩排列

 flex-wrap: wrap 超长时子元素换行排列

 

 4.align-items: 设置子元素在侧轴上的排列方式(单行),默认值为flex-start,自上向下;(为了演示效果,关于align-items的取值效果图展示默认设置了justify-content: center)

align-items: flex-start 效果

 align-items: flex-end 效果

align-items: center 效果

align-item: stretch 当不设置子元素高度时,该属性会将子元素拉伸占满父容器

 5.align-content: 设置子元素在侧轴上的排列方式(多行),仅适用于子元素换行的情况,单行设置该属性无效,默认值为flex-start,从侧轴的头部开始排列;(以下为了演示效果给子元素设置了外边距,设置了justify-content: center)

align-content: flex-start,从从侧轴的头部开始排列

 

align-content: flex-end,从侧轴的尾部开始排列

 

align-content: space-around,平分侧轴上的剩余空间

 

align-content: space-between,先侧轴两端对齐,再平分中间剩余空间

 

align-content: center,子元素整体居中(当主轴为row时,就是整体垂直居中的效果)

 

align-content: stretch,子元素整体拉升占满父容器(子元素未设置高度才有效)

 6.flex-flow:设置flex布局的主轴和是否允许换行/列,相当于flex-direction和flex-wrap的简写形式,flex-flow的取值第一个用于设置主轴,第二个用于设置是否换行,可选择的值就时flex-direction和flex-wrap的值,例如flex-flow: column wrap就代表设置y轴为主轴且允许换列显示;

 子元素常用属性:

1.flex: 定义子元素分配剩余空间所占份数,取值为number,例如,当子元素没有设置宽度,flex: 1就代表子元素平均分配父容器宽度;

2.align-self: 设置子元素自己在侧轴上的排列方式,默认值为auto,表示继承父元素的align-items属性,如果没有没有父元素就类似stretch效果,某个子元素设置该属性后会覆盖掉父元素设置的align-items;例如align-self: flex-end效果如下(给第三个子元素设置align-self: flex-end)

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flex布局常用属性有: 1. flex-direction:设置主轴的方向,可以是row(水平方向),column(垂直方向),row-reverse(水平方向反转),column-reverse(垂直方向反转)。 2. flex-wrap:设置是否换行,默认为nowrap,即不换行;可选值为wrap,即换行;wrap-reverse,即换行并反转。 3. flex-flow:是flex-direction和flex-wrap的简写形式,例如flex-flow: row wrap;。 4. justify-content:设置主轴上的对齐方式,可以是flex-start(默认值,左对齐),flex-end(右对齐),center(居中对齐),space-between(两端对齐,项目之间的间隔相等),space-around(每个项目两侧的间隔相等)。 5. align-items:设置交叉轴上的对齐方式,可以是flex-start(顶部对齐),flex-end(底部对齐),center(居中对齐),baseline(项目的第一行文字的基线对齐),stretch(默认值,如果项目未设置高度或设为auto,将占满整个容器的高度)。 6. align-content:多根轴线的对齐方式,仅在有多根轴线时生效。可选值有flex-start(顶部对齐),flex-end(底部对齐),center(居中对齐),space-between(两端对齐,轴线之间的间隔相等),space-around(每根轴线两侧的间隔相等),stretch(轴线占满整个交叉轴)。 7. flex-grow:设置项目的放大比例,默认为0,即不放大;如果有剩余空间,将按照flex-grow的比例分配。 8. flex-shrink:设置项目的缩小比例,默认为1,即如果空间不足,项目将缩小;如果设置为0,则项目不会缩小。 9. flex-basis:定义了在分配多余空间之前,项目占据的主轴空间,默认为auto,即由项目内容决定。 10. flex:是flex-grow、flex-shrink和flex-basis的简写形式,例如flex: 1 1 auto;。 这些属性可以根据具体布局需求进行灵活配置,以实现不同的布局效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值