弹性盒
- 是CSS中的又一种布局手段,它主要用来代替浮动来完成页面的布局
- 可以使元素具有弹性,让元素可以跟随页面的大小的改变而改变
- 两个概念
- 弹性容器
- 要使用弹性盒,必须先将一个元素设置为弹性容器
- 通过display来设置弹性容器
display:flex
display:inline-flex
- 弹性元素
- 弹性容器的子元素是弹性元素(弹性项)
- 一个元素可以同时是弹性容器和弹性元素
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
ul {
width: 800px;
border: 10px red solid;
display: flex;
flex-direction: row;
}
li {
width: 400px;
height: 100px;
background-color: #bfa;
font-size: 50px;
text-align: center;
line-height: 100px;
flex-shrink: 6;
}
li:nth-child(2) {
background-color: pink;
flex-shrink: 2;
}
li:nth-child(3) {
background-color: orange;
flex-shrink: 1;
}
弹性容器的样式
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
ul {
width: 1000px;
border: 10px red solid;
display: flex;
flex-direction: row;
flex-wrap: wrap-reverse;
flex-flow: row nowrap;
justify-content: center;
}
li {
width: 200px;
height: 100px;
background-color: #bfa;
font-size: 50px;
text-align: center;
line-height: 100px;
flex-shrink: 0;
}
li:nth-child(2) {
background-color: pink;
}
li:nth-child(3) {
background-color: orange;
}
<ul>
<li>1</li>
<li>2
<div>2</div>
</li>
<li>3
<div>3</div>
<div>3</div>
</li>
<li>4</li>
<li>
5
<div>5</div>
</li>
</ul>
ul {
width: 700px;
height: 800px;
border: 10px red solid;
display: flex;
flex-flow: row wrap;
align-items: flex-start;
align-content: flex-start;
}
li {
width: 200px;
background-color: #bfa;
font-size: 50px;
text-align: center;
line-height: 100px;
flex-shrink: 0;
}
li:nth-child(1) {
align-self: flex-end;
}
li:nth-child(2) {
background-color: pink;
}
li:nth-child(3) {
background-color: orange;
}
li:nth-child(4) {
background-color: rosybrown;
}
li:nth-child(5) {
background-color: tomato;
}
弹性元素的样式
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
ul {
width: 900px;
border: 10px red solid;
display: flex;
}
li {
width: 200px;
background-color: #bfa;
font-size: 50px;
text-align: center;
line-height: 100px;
flex-shrink: 1;
flex-basis: 100px;
flex: 1 1 100px;
}
li:nth-child(1) {
order: 3;
}
li:nth-child(2) {
background-color: pink;
order: 1;
}
li:nth-child(3) {
background-color: orange;
order: 2;
}