h5-伸缩布局

1.html代码

1 <div class="box">
2     <div class="first">1</div>
3     <div class="second">2</div>
4     <div class="third">3</div>
5     <div class="fourth">4</div>
6     <div class="fifth">5</div>
7 </div>

2.justify-content:属性:设置子元素的排列方式

 1 <style>
 2         .box{
 3             width: 1000px;
 4             height: 200px;
 5             border: 1px solid red;
 6             box-sizing: border-box;
 7             /*设置为父容器为盒子:会使每一个子元素自动变成伸缩项*/
 8             display: flex;
 9             /*设置子元素的排列方式*/
10             /*flex-start:让子元素从父容器的起始位置开始排列
11             flex-end:让子元素从父容器的结束位置开始排列
12             center:让子元素从父容器的中间位置开始排列
13             space-between:左右对其父容器的开始和结尾,中间平均分页,产生相同过的间距
14             space-around:将多余的空间平均的分页在给每一个子元素的两边  margin:0  auto   :造成中间合资的间距是左右两边盒子间距的两倍
15             space-evenly:使子元素平均分布在把父容器中,且间距相同
16             */
17             justify-content: space-evenly;
18         }
19         .box > div{
20             width: 200px;
21             height: 100%;
22         }
23         .first{
24             width: 200px;
25             height: 100%;
26             background-color: #65ffdd;
27         }
28         .second{
29             background-color: #5aff61;
30         }
31         .third{
32             background-color: #efffc7;
33         }
34         .fourth{
35             background-color: #47b3ff;
36         }
37     </style>

效果图:

3.flex-flow:属性:可以代替 flex-wrap和flex-direction

 1 <style>
 2         .box{
 3             width: 900px;
 4             height: 600px;
 5             border: 1px solid red;
 6             box-sizing: border-box;
 7             margin: 0 auto;
 8             /*设置父容器为盒子:会使每个子元素自动变成伸缩项
 9             当子元素的宽高和大于父容器宽度的时候,子元素就自动平均收缩*/
10 
11             display: flex;
12             /*设置子元素在主轴上的排列方式*/
13             justify-content: space-evenly;
14             /* flex-wrap:控制子元素是否换行显示,默认不换行
15             noweap:不换行---则收缩
16             wrap:换行显示
17             wrap-reverse:翻转
18             */
19             /*flex-wrap: wrap;*/
20             /*flex-direction:设置子元素的排列方向:就是用来设置主轴方向,默认主轴方向是row
21             row水平
22             column:垂直*/
23             /*flex-direction: column-reverse;*/
24 
25             /*flex-flow:可以代替  flex-wrap和flex-direction*/
26             flex-flow: column wrap;
27         }
28         .first{
29             width: 200px;
30             height: 200px;
31             background-color: #65ffdd;
32         }
33         .second{
34             width: 200px;
35             height: 200px;
36             background-color: #5aff61;
37         }
38         .third{
39             width: 200px;
40             height: 200px;
41             background-color: #efffc7;
42         }
43         .fourth{
44             width: 200px;
45             height: 200px;
46             background-color: #47b3ff;
47         }
48         .fifth{
49             width: 200px;
50             height: 200px;
51             background-color: #ff510a;
52         }
53     </style>

效果图:

4.flex-grow:属性:可以来扩张子元素的宽度:设置当前元素应该占据生于空间的比例值,比例值计算:当前空间的flex-grow/所有兄弟元素的flex-grow的和

 1 <style>
 2         .box {
 3             width: 900px;
 4             height: 600px;
 5             border: 1px solid red;
 6             margin: 0 auto;
 7             /*设置父容器为盒子:会使每个子元素自动变成伸缩项
 8             当子元素的宽高和大于父容器宽度的时候,子元素就自动平均收缩*/
 9 
10             display: flex;
11             /*设置子元素在主轴上的排列方式*/
12             justify-content: space-evenly;
13 
14 
15         }
16         .first{
17             width: 200px;
18             height: 200px;
19             background-color: #65ffdd;
20             /*flex-grow: 可以来扩张子元素的宽度:设置当前元素应该占据生于空间的比例值,
21             比例值计算:当前空间的flex-grow/所有兄弟元素的flex-grow的和
22             flex-grow的默认值是0:说明子元素不会去占据生于的空间
23             */
24             flex-grow: 1;
25         }
26         .second{
27             width: 200px;
28             height: 200px;
29             background-color: #5aff61;
30             flex-grow: 1;
31         }
32         .third{
33             width: 200px;
34             height: 200px;
35             background-color: #efffc7;
36             flex-grow: 1;
37         }
38     </style>

效果图:

5.flex-shrink:属性:定义收缩比例,通过设置的值来计算的收缩空间比例值计算:当前空间的flex-shrink/所有兄弟元素的flex-shrink的和。默认值为1

 1 <style>
 2         .box {
 3             width: 500px;
 4             height: 600px;
 5             border: 1px solid red;
 6             margin: 0 auto;
 7             /*设置父容器为盒子:会使每个子元素自动变成伸缩项
 8             当子元素的宽高和大于父容器宽度的时候,子元素就自动平均收缩*/
 9             display: flex;
10             /*设置子元素在主轴上的排列方式*/
11             justify-content: space-evenly;
12         }
13         .first{
14             width: 200px;
15             height: 200px;
16             background-color: #65ffdd;
17             /*flex-shrink:定义收缩比例,通过设置的值来计算的收缩空间
18             比例值计算:当前空间的flex-shrink/所有兄弟元素的flex-shrink的和
19             默认值为1
20             */
21             flex-shrink: 2;
22         }
23         .second{
24             width: 200px;
25             height: 200px;
26             background-color: #5aff61;
27             flex-shrink: 0;
28         }
29         .third{
30             width: 200px;
31             height: 200px;
32             background-color: #efffc7;
33 
34         }
35     </style>

效果图:

6.flex:属性:设置当前伸缩子项占据生于空间的比例值

 1 <style>
 2         .box {
 3             width: 100%;
 4             height: 500px;
 5             background-color: #ccc;
 6             margin: 0 auto;
 7             /*设置父容器为盒子:会使每个子元素自动变成伸缩项
 8             当子元素的宽高和大于父容器宽度的时候,子元素就自动平均收缩*/
 9 
10             display: flex;
11             /*设置子元素在主轴上的排列方式*/
12             /*justify-content: space-evenly;*/
13         }
14         .first{
15             /*设置当前伸缩子项占据生于空间的比例值*/
16             flex: 1;
17             height: 100%;
18             background-color: #65ffdd;
19         }
20         .second{
21             flex: 4;
22             height: 100%;
23             background-color: #5aff61;
24         }
25     </style>

效果图:

7.align-items:属性:设置子元素在侧轴方向上的对其方式

 1 <style>
 2         .box{
 3             width: 900px;
 4             height: 600px;
 5             border: 1px solid red;
 6             margin: 0 auto;
 7             /*设置父容器为盒子:会使每个子元素自动变成伸缩项
 8             当子元素的宽高和大于父容器宽度的时候,子元素就自动平均收缩*/
 9 
10             display: flex;
11             /*align-items:设置子元素在侧轴方向上的对其方式
12             center:设置在侧轴方向上居中对齐
13             flex-start:设置在侧轴方向上顶对其
14             flex-end:设置在侧轴方向上低对齐
15             stretch:拉伸  :让我的子元素在侧轴方向上尽享拉伸,填充满整个侧轴方向
16             baseline:文本基线对齐
17             */
18             align-items: center;
19         }
20         .first{
21             width: 200px;
22             height: 200px;
23             background-color: #65ffdd;
24         }
25         .second{
26             width: 200px;
27             height: 200px;
28             background-color: #5aff61;
29             /*设置单个元素在侧轴方向上的对齐方式*/
30             align-self: flex-end;
31         }
32         .third{
33             width: 200px;
34             height: 200px;
35             background-color: #efffc7;
36         }
37 
38     </style>

效果图:

 

posted @ 2019-08-23 18:22  FengBrother  阅读(788)  评论(0编辑  收藏  举报