参考:
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
http://www.ruanyifeng.com/blog/2015/07/flex-examples.html
align-content用来设置多根轴线的对齐方式,多根轴线指的就是多行,如果只有一根轴线,则该属性不起作用,如果父容器没有设置高度,则该属性不起作用
lesson1:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>flex布局的align-content属性_lesson1</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
}
.box {
width: 100px;
height: 100px;
border: red solid 1px;
}
#box1 {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-content: flex-start;
}
#box2 {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-content: flex-end;
}
#box3 {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-content: center;
}
#box4 {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-content: space-between;
}
#box5 {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-content: space-around;
}
#box6 {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-content: space-evenly;
}
#box7 {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-content: stretch;/*当前子容器item设置了相同的高度,所以会在每行容器下留有相同大小的空间*/
}
.item {
width: 33%;
height: 33%;
display: flex;
justify-content: center;
align-items: center;
border: green solid 1px;
}
.em {
width: 80%;
height: 80%;
background-color: green;
border-radius: 50%;
}
</style>
</head>
<body>
<div id="box1" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box2" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box3" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box4" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box5" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box6" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box7" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
</body>
</html>
lesson2:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>flex布局的align-content属性_lesson2</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
}
.box {
width: 100px;
height: 100px;
border: red solid 1px;
}
#box1 {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: flex-start;
}
#box2 {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: flex-end;
}
#box3 {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: center;
}
#box4 {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: space-between;
}
#box5 {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: space-around;
}
#box6 {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: space-evenly;
}
#box7 {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: stretch;/*当前子容器item设置了相同的高度,所以会在每行容器下留有相同大小的空间*/
}
.item {
width: 33%;
height: 33%;
display: flex;
justify-content: center;
align-items: center;
border: green solid 1px;
}
.em {
width: 80%;
height: 80%;
background-color: green;
border-radius: 50%;
}
</style>
</head>
<body>
<div id="box1" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box2" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box3" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box4" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box5" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box6" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box7" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
</body>
</html>
lesson3:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>flex布局的align-content属性_lesson3</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
}
.box {
width: 100px;
height: 100px;
border: red solid 1px;
}
#box1 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-content: flex-start;
}
#box2 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-content: flex-end;
}
#box3 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-content: center;
}
#box4 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-content: space-between;
}
#box5 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-content: space-around;
}
#box6 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-content: space-evenly;
}
#box7 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-content: stretch;/*当前子容器item设置了相同的高度,所以会在每行容器下留有相同大小的空间*/
}
.item {
width: 33%;
height: 33%;
display: flex;
justify-content: center;
align-items: center;
border: green solid 1px;
}
.em {
width: 80%;
height: 80%;
background-color: green;
border-radius: 50%;
}
</style>
</head>
<body>
<div id="box1" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box2" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box3" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box4" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box5" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box6" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
<div id="box7" class="box">
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
<div class="item">
<div class="em"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.parent {
display: flex;
height: 500px;
border: red solid 1px;
flex-wrap: wrap;
align-content: stretch;/*当前子容器没有设置高度,所以两行子容器会均匀拉伸,直到铺满父容器的高度*/
}
.item {
padding: 20px;
border: green solid 1px;
}
</style>
</head>
<body>
<div class="parent">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
<div class="item">item6</div>
<div class="item">item7</div>
<div class="item">item8</div>
<div class="item">item9</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 当子容器的高度不相同时,如果此时设置了align-content: stretch;
则会进行拉伸直到铺满父容器的高度,但此处的拉伸是先进行均匀拉伸,
然后在拉伸的基础上,再加上每行子容器中最大的高度值 */
.parent {
display: flex;
border: red solid 1px;
flex-wrap: wrap;
align-content: stretch;
height: 500px;
}
.item {
padding: 20px;
border: green solid 1px;
}
.item2 {
height: 50px;
}
.item9 {
height: 100px;
}
</style>
</head>
<body>
<div class="parent">
<div class="item">item1</div>
<div class="item item2">item2</div>
<div class="item item3">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
<div class="item">item6</div>
<div class="item">item7</div>
<div class="item">item8</div>
<div class="item item9">item9</div>
</div>
</body>
</html>