css display:flex详解

页面布局的时候经常需要给块级子元素居中,目前发现最方便直接的是父级元素使用display:flex属性,
css display:flex 属性
6
2018.09.04 16:03:53
字数 902
阅读 151492
一:display:flex 布局
display:flex 是一种布局方式。它即可以应用于容器中,也可以应用于行内元素。是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持。

Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

二:flex的六个属性
flex-direction 容器内元素的排列方向(默认横向排列)
1:flex-direction:row; 沿水平主轴让元素从左向右排列
在这里插入图片描述

2:flex-direction:column; 让元素沿垂直主轴从上到下垂直排列
在这里插入图片描述

3:flex-direction:row-reverse;沿水平主轴让元素从右向左排列
在这里插入图片描述
flex-wrap 容器内元素的换行(默认不换行)
1:flex-wrap: nowrap; (默认)元素不换行,比如:一个div宽度100%,设置此属性,2个div宽度就自动变成各50%;
2:flex-wrap: wrap; 元素换行,比如:一个div宽度100%,设置此属性,第二个div就在第二行了;
justify-content 元素在主轴(页面)上的排列
1:justify-content : center;元素在主轴(页面)上居中排列
在这里插入图片描述
2:justify-content : flex-start;元素在主轴(页面)上由左或者上开始排列
在这里插入图片描述

3:justify-content : flex-end;元素在主轴(页面)上由右或者下开始排列
在这里插入图片描述
4:justify-content : space-between;元素在主轴(页面)上左右两端或者上下两端开始排列
在这里插入图片描述

5:justify-content : space-around;每个元素两侧的间隔相等。所以,元素之间的间隔比元素与边框的间隔大一倍。
在这里插入图片描述
align-items 元素在主轴(页面)当前行的横轴(纵轴)方向上的对齐方式
1:align-items : flex-start; 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界(靠上对齐)。
在这里插入图片描述

2:align-items : flex-end; 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。(靠下对齐)
在这里插入图片描述

3:align-items : center; 弹性盒子元素在该行的侧轴(纵轴)上居中放置。(居中对齐)
在这里插入图片描述
4:align-items : baseline; 如弹性盒子元素的行内轴与侧轴为同一条,则该值与’flex-start’等效。其它情况下,该值将参与基线对齐。(靠上对齐)
align-content 在弹性容器内的元素没有占用交叉轴上所有可用的空间时对齐容器内的各项(垂直)

<div id="main">
  <div style="background-color:coral;"></div>
  <div style="background-color:lightblue;"></div>
  <div style="background-color:pink;"></div>
</div>
#main {
  width: 70px;
  height: 300px;
  border: 1px solid #c3c3c3;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-content: center;
  align-content: flex-start;
}
#main div {
  width: 70px;
  height: 70px;
}

1:align-content: flex-start; 元素位于容器的开头。各行向弹性盒容器的起始位置堆叠。

在这里插入图片描述

2:align-content: flex-end; 元素位于容器的结尾。各行向弹性盒容器的结尾位置堆叠。

在这里插入图片描述

3:align-content: stretch; 元素位于容器的中心。各行向弹性盒容器的中间位置堆叠。
在这里插入图片描述

4:align-content: center; 默认值。元素被拉伸以适应容器。各行将会伸展以占用剩余的空间。如果剩余的空间是负数,该值等效于’flex-start’。

在这里插入图片描述
5:align-content: space-between;元素位于各行之间留有空白的容器内。各行在弹性盒容器中平均分布。
在这里插入图片描述

6:align-content: space-around;元素位于各行之前、之间、之后都留有空白的容器内。各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。如果剩余的空间是负数或弹性盒容器中只有一行,该值等效于’center’。
在这里插入图片描述
三:flex常见属性总结
Positional alignment
justify-content: center; :居中排列
justify-content: flex-start; /* 从行首起始位置开始排列 /
justify-content: flex-end; / 从行尾位置开始排列 */

作者:杨杨1314
链接:https://www.jianshu.com/p/d9373a86b748
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
重点:
1.Flex布局以后,子元素的float、clear和vertical-align属性将失效。
2.justify-content:水平排列
3.align-content:垂直排列
4.align-items 水平居中基准线
5.flex可以用于块级元素,也可用于行内元素
复习:

vertical-align:该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐

  • 17
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
display:flexCSS中的一个属性,用于设置一个容器元素(flex container)为弹性布局容器。该属性能够改变元素的默认布局行为,使其具有弹性布局的特性。 flex容器内部的子元素(flex items)可以通过设置不同的flex属性来决定它们在容器内的分布和对齐方式。这些flex属性包括: 1. flex-direction:决定flex items在容器内的排列方向。它可以取四个值,分别是row、row-reverse、column和column-reverse。默认值是row,表示水平方向排列。 2. flex-wrap:当flex items在容器内的空间不足时,决定是否换行显示。它可以取五个值,分别是nowrap、wrap、wrap-reverse、initial和inherit。默认值是nowrap,表示不换行。 3. flex-flow:是flex-direction和flex-wrap的缩写,可以同时设置这两个属性的值。 4. justify-content:决定flex items在主轴上的对齐方式。它可以取五个值,分别是flex-start、flex-end、center、space-between和space-around。 5. align-items:决定flex items在交叉轴上的对齐方式。它可以取六个值,分别是flex-start、flex-end、center、baseline、stretch和inherit。 6. align-content:当flex items有多行时,决定它们在交叉轴上的对齐方式。它可以取六个值,分别是flex-start、flex-end、center、space-between、space-around和stretch。 以上是display:flex的一些常用属性,通过灵活地设置这些属性,可以实现各种复杂的布局效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [详解CSS中的display:flex||inline-flex属性](https://download.csdn.net/download/weixin_38501751/12891643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [display:flex详解](https://blog.csdn.net/Anony_me/article/details/125524220)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值