弹性盒子display:flex
目录弹性盒子flex-direction 排列方向flex-wrap规定是否换行justify-content主轴排列align-items侧轴排列方式单个元素的align-selfflex-grow放flex-shrink缩flex-basisorder弹性盒子声明定义:使用display:flex或display:inline-flex 声明一个容器为弹性盒子。这个容器中的子元素们,会遵循弹性
目录
弹性盒子
声明定义:
使用display:flex或display:inline-flex 声明一个容器为弹性盒子。这个容器中的子元素们,会遵循弹性布局。
【注】display:flex; 设置为块级弹性盒 独立成行
display:inline-flex; 设置行内快弹性盒
flex:如果没有为父元素设置宽,默认为100%;
inline-flex:如果没有设置宽,,默认为所有子元素的宽的和。
实例知识:让三个div居中叠在一起
父元素设置弹性盒子属性并设置相对定位
子元素全部绝对定位
.content {
width: 1200px;
height: 600px;
background-color: teal;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.bo {
position: absolute;
}
text-align: center;
只对行内/行内块元素会生效
flex-direction 排列方向
用于设置盒子中的子元素的排列方向。
row 从左到右水平排列子元素(默认值)
column 从上往下垂直排列子元素
row-reverse 从右到左排列子元素
column-reverse 从下往上垂直排列子元素
row-reverse
可以看到内容也会反过来
123会变成321
flex-direction 排列方向的轴就是主轴,所以它可以是横的也可以是竖的
flex-wrap规定是否换行
规定flex容器是单行还是多行,是否换行
nowrap:不换行(默认值)
wrap:换行
wrap-reverse 反向换行。
flex-flow
是flex-direction与flex-wrap的组合写法。
flex-flow:flex-direction属性 flex-wrap属性;
flex-flow: row nowrap;(左到右,换行)
弹性盒子与弹性元素
弹性盒子:指的是使用display:flex或display:inline-flex声明的容器。
弹性元素:指的是弹性盒子中的子元素。
主轴与侧轴(交叉轴)
主轴方向:为子元素排列的方向。可以通过flex-direction改变。
侧轴方向:与主轴方向垂直,为子元素的换行方向。可以通过flex-wrap改变。
justify-content主轴排列
用于控制弹性元素在主轴上的排列方式。
flex-start 元素紧靠主轴的起点(默认值)
flex-end 元素紧靠主轴的终点。
center 元素在主轴上居中。
space-between 第一元素紧靠起点,最后一个元素紧靠终点,余下的元素平均分配剩余空间。
space-around 每个元素两侧的间隔相等。元素之间的间隔比元素与容器边框的间隔要大一倍。
space-evenly 元素间距平均分配
flex-start 元素紧靠主轴的起点(默认值)flex-end 元素紧靠主轴的终点。
center 元素在主轴上居中。
当改变主轴时也可以垂直居中
space-between 第一元素紧靠起点,最后一个元素紧靠终点,余下的元素平均分配剩余空间。
space-around 每个元素两侧的间隔相等。元素之间的间隔比元素与容器边框的间隔要大一倍。
space-evenly 元素间距平均分配
这些移动顺序只是盒子的排列,不会干扰内容,原来是1234还是1234
align-items侧轴排列方式
控制元素在侧轴上的排列方式。
多行单行都适用的属性。
flex-start 从侧轴开始的地方对齐
flex-end 从侧轴结束的地方对齐
center 中间对齐
stretch 拉伸 没有设置侧轴方向上的宽/高时,等于父盒子的宽或高。
align-content
控制元素在侧轴上的排列方式。只适用于多行显示的弹性容器。
stretch 拉伸
flex-start 元素紧靠行的起点
flex-end 元素紧靠行的终点
center 元素在行中居中
space-between 第一个元素紧靠行的起点,最后一个元素紧靠行的终点,余下元素平均
分配剩余空间
space-around 元素在侧轴方向上的间隔相等。
space-evenly 元素间距离平均分配
flex-start 从侧轴开始的地方对齐
flex-end 从侧轴结束的地方对齐
center 中间对齐
stretch 拉伸 没有设置侧轴方向上的宽/高时,等于父盒子的宽或高。
space-between 第一个元素紧靠行的起点,最后一个元素紧靠行的终点,余下元素平均
分配剩余空间
单个元素的
align-self-侧轴排列
单个元素在侧轴上的排列方式。 align-self
弹性元素:
不要再去设置float。
设置完绝对定位后,该元素就不再是弹性元素了,不参与弹性布局。
弹性元素均为块级元素。
align-self:
用于控制单个元素在侧轴上的排列方式。
stretch 拉伸
flex-start元素紧靠行的起点
flex-end元素紧靠行的终点
center元素在行中居中
flex-end元素紧靠行的终点
flex-grow放
用于将弹性盒子的可用空间,按照比例分配给弹性元素。
flex-shrink缩
在弹性盒子装不下子元素时,对子元素缩小的比例设置。
flex-basis
大部分情况下与宽度相等。优先级比宽要高。定义了元素在主轴上的空间。
flex: auto
flex:auto 是根据内容的大小来分,不是平的(除非内容都是一样,才平分)
<style>
.wrap {
height: 100px;
display: flex;
}
.box {
border: 2px solid yellowgreen;
flex: auto;
}
</style>
<body>
<div class="wrap">
<div class="box">挪威的森林</div>
<div class="box">让我走进你的梦里</div>
<div class="box">测试数据测试数据测试数据</div>
</div>
</body>
flex: 1
flex:1 不管内容多少,一般都是平分空间,空间大小都一致
<style>
.wrap {
height: 100px;
display: flex;
}
.box {
border: 2px solid yellowgreen;
flex: 1;
}
</style>
<body>
<div class="wrap">
<div class="box">挪威的森林</div>
<div class="box">让我走进你的梦里</div>
<div class="box">测试数据测试数据测试数据</div>
</div>
</body>
order
用于控制弹性元素的位置。默认为0,数值越小越靠前。
【注】
1.文本节点也可以被弹性布局操作。
2.绝对定位的元素不参与弹性布局。
更多推荐
所有评论(0)