概述
文章目录
- flex布局的初步认知
- 兼容性
- 怎么开启一个flex布局
- flex的布局模型
- 两个坐标系main axis和cross axis的一些重要念
- flex的container中的属性
- flex-direction
- Justigy-content
- align-items
- flex-wrap
- flex-flow
- align-content
- flex-item中的属性
- order
- align-self
- flex-grow
- flex-shrink
- felx-basis
- flex
flex布局的初步认知
兼容性
flex布局的兼容性是杠杠的,几乎普及了所有浏览器的pc端和移动端,微信小程序等移动端网页基本可以用flex布局代替浮动了
怎么开启一个flex布局
.box{
/* 开启flex布局 */
/*
块级的开启方式是display设置为flex
行内元素开启布局的方式是inline-flex
*/
display: flex;
}
flex的布局模型
两个坐标系main axis和cross axis的一些重要念
main axis被称为主轴,cross axis被称之为交叉轴,主轴的开始位置为main start 结束为止被称为main start,交叉轴的的开始位置被称为cross start ,结束为止被称为cross end,主轴的宽度为main size,同理cross size就是交叉轴的长度
注意的是上面这幅图来自官方是默认情况下的模型,有可能主轴是纵向的
flex的container中的属性
flex-direction
看如下代码
<style>
.box{
/* 开启flex布局 */
/*
块级的开启方式是display设置为flex
行内元素开启布局的方式是inline-flex
*/
display: flex;
width: 500px;
height: 400px;
background-color: red;
}
.item{
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
}
.item1{
background-color: rebeccapurple;
}
.item2{
background-color: #0f0;
}
.item3{
background-color: #fff;
}
</style>
</head>
<body>
<div class="box">
<div class="item item1">item1</div>
<div class="item item2">item2</div>
<div class="item item3">item3</div>
<!-- <div></div> -->
</div>
<strong>加粗样式</strong>
</body>
默认情况主轴方向从左到右
当设置
/* flex-direction默认情况从左到右 */
flex: row;(默认值)
/* 和主轴方向从右到左的排列 */
flex-direction: row-reverse;
/* 主轴方向从上到下 */
flex-direction:column;
/* 主轴方向下到上 */
flex-direction:column-reverse;
Justigy-content
*决定了flex items在main axis上的对齐放
/* 默认值 与main start对齐*/
justify-content: flex-start;
/* flex-end与main end对齐 */
justify-content: flex-end;
/* 居中对齐 */
justify-content:center;
/* 间隔居中对齐 */
/* justify-content: space-between; */
/* 均匀居中, */
/* justify-content: space-evenly; */
/* 两边的间隔小,中间间隔大 */
/* justify-content: space-around; */
align-items
决定了flex items在cross axis上的对齐方式
如果flex-item没有设置高度,那么flex-item的高度不像以前那样他的高度由内容决定,而是他的高度会拉伸和父元素一样如下
align-items: normal;
前提是没有设置item高度
当给元素设置不同的高度时 用normal或者flex-start如下cross start对齐
.item1 {
background-color: rebeccapurple;
height: 60px;
}
.item2 {
background-color: #0f0;
height: 150px;
}
.item3 {
background-color: #fff;
height: 130px;
}
align-items: flex-start;
align-items: flex-end;
按cross-end对齐
align-items: center;
按照交叉轴的中心点对齐
align-items:baseline;
按照基线对齐(内容第一行文本的基线)
flex-wrap
如果把item变为9个
那么样式如下不换行显示,且元素是设置过宽度的的
换行显示
flex-wrap: wrap;
反转换行交叉轴
flex-wrap: wrap-reverse;
flex-flow
flex-flow: row-reverse;
flex-flow: row-reverse wrap;
align-content
align-content决定了多行flex item是在cross axis上的对齐方式,用法与justify-content类似
.
这里参考justify-content 看看吧,只不过把主轴换成了交叉轴
flex-item中的属性
order
.box {
/* 开启flex布局 */
/*
块级的开启方式是display设置为flex
行内元素开启布局的方式是inline-flex
*/
display: flex;
width: 550px;
height: 400px;
background-color: red;
}
.item {
width: 100px;
height: 100px;
text-align: center;
/* line-height: 100px; */
}
.item1 {
background-color: rebeccapurple;
order:10
}
.item2 {
background-color: #0f0;
order: 6;
}
.item3 {
background-color: #fff;
order: 100;
}
</style>
</head>
<body>
<div class="box">
<div class="item item1">item1</div>
<div class="item item2">item2</div>
<div class="item item3">item3</div>
</div>
<strong>加粗样式</strong>
</body>
align-self
.item3 {
background-color: #fff;
/* order: 100; */
align-self: flex-end;
}
这里的item3设置了align-self属性它将会覆盖父元素的align-item属性
flex-grow
.item {
width: 100px;
height: 100px;
text-align: center;
/* line-height: 100px; */
}
.item1 {
background-color: rebeccapurple;
/* order:10 */
flex-grow: 1;
}
.item2 {
background-color: #0f0;
/* order: 6; */
flex-grow: 1;
}
.item3 {
background-color: #fff;
/* order: 100; */
/* align-self: flex-end; */
flex-grow: 1;
}
把三个item的flex-grow 都设置为1会铺满主轴
flex-shrink
.item1 {
background-color: rebeccapurple;
/* order:10 */
/* flex-grow: 1; */
flex-shrink: 2;
}
.item2 {
background-color: #0f0;
/* order: 6; */
/* flex-grow: 1; */
flex-shrink: 2;
}
.item3 {
background-color: #fff;
/* order: 100; */
/* align-self: flex-end; */
/* flex-grow: 1; */
flex-shrink: 2;
}
就是3个盒子将多出的部分按照1:2:2缩小
felx-basis
就是设置item在主轴方向的宽度,如果同时设置宽度有设置这个以这个为准
flex
最后
以上就是幽默电脑为你收集整理的flex布局的从认识到深刻认知到熟悉使用(详细图解)flex布局的初步认知flex的布局模型flex的container中的属性flex-item中的属性的全部内容,希望文章能够帮你解决flex布局的从认识到深刻认知到熟悉使用(详细图解)flex布局的初步认知flex的布局模型flex的container中的属性flex-item中的属性所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复