用php做一个九行菱形,弹性布局之弹性容器---PHP第九期线上班

一、弹性容器的两种类型

任何元素都可以通过给display添加flex属性值可以转为弹性盒子,也叫弹性容器。

弹性容器分为块级弹性元素和行内弹性元素。

实例

1.块级弹性盒子

item1

item2

item3


1.行内块级弹性盒子

item1

item2

item3

item1

item2

item3

.container{

border: 1px dashed #000;

margin: 15px;

background-color: #ccddcc;

}

/* 转为块级元素,设置box-sizing */

.item{

box-sizing: border-box;

border: 1px solid #000;

padding: 20px;

background-color: #eeddee;

}

/* 转为块级弹性盒子,转为弹性容器,它的直接子元素都会转为块元素 */

.flex{

display: flex;

}

/* 转为行内块级弹性容器,转为弹性容器,它的直接子元素都会转为块元素 */

.inline-flex{

display: inline-flex;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

f6bced90238b2a18adcb83249249da20.png

1、总结:

2c6cdc59f4ebe94758f7d232f17b7b26.png

2、利用弹性盒子做一个导航

以前想要做一个导航是通过无序列表来实现的,代码量较大。现在使用弹性盒子可以简单的实现。

1)代码实现

实例

首页

教学视频

社区问答

软件下载

联系我们

/* 链接样式重置 */

a{

text-decoration: none;

background-color: lightgreen;

color: black;

padding: 5px 10px;

margin: 0 5px;

border-radius: 5px 5px 0 0;

}

a:hover a:focus{

background-color: orangered;

color: white;

}

nav{

display: flex;

border-bottom: 1px solid gray;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2)实现效果

1be2a2af06f78619e4166f64b4668bd7.png

二、定义弹性容器的主轴方向:弹性元素的主轴上的排列方向

1、代码实现

实例

1.row:默认从左到右水平排列

item1

item2

item3


2.row-reverse:从右向左水平排列

item1

item2

item3


3.column:从上向下垂直排列

item1

item2

item3


4.column-reverse:从下向上垂直排列

item1

item2

item3

@import "style1.css";

.row{

flex-direction: row;

}

.row-reverse{

flex-direction: row-reverse;

}

.column{

flex-direction: column;

}

.column-reverse{

flex-direction: column-reverse;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、实现效果

427cf3450dfe777ffa51ec1ac5eacdd7.png

3、总结

c7d47fa7bbf31e18031bfd38977d356a.png

077d42025e5244c5aead096871905487.png

4、案例展示:博客页面

1)代码展示

实例

学生的博客

首页

教学视频

社区问答

软件下载

联系我们

            

PHP实战天龙八部之仿爱奇艺电影网站

立即学习

            

PHP实战天龙八部之微信支付视频教程

立即学习

            

PHP实战天龙八部之开发Mini版MVC框架仿糗事百科网站

立即学习

Copyright © 2018-2020 PHP中文网

@import "style2.css";

*{

outline: 1px solid #cccccc; /*参考线,不占用空间*/

margin: 10px;

padding: 10px;

}

/* 将页面中所有的布局元素转为flex */

body,nav,main,article{

display: flex;

}

/* 元素在主轴上的排列方向 */

body,article{

flex-direction: column;

}

footer{

border-top: 1px solid gray;

}

nav{

padding-bottom:0 ;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2)效果展示

59f97e76847d5c048589ef014002a29f.png

三、弹性元素溢出与创建多行容器

1、代码展示

实例

以主轴水平方向方向为例进行演示

1.nowrap:默认不换行,元素自动缩小。缩小的是元素与元素之间的间距,元素本身的属性(margin,padding,contianer)空间不会缩放,实在放不下会溢出。

item1

item2

item3

item4

item5

item6

item7

item8

item9

item10

item11


2.wrap:换行,弹性元素超出容器边界的换到下一行显示

item1

item2

item3

item4

item5

item6

item7

item8

item9

item10

item11


3.wrap-reverse:换行(反向),弹性元素超出容器边界的换到下一行显示

item1

item2

item3

item4

item5

item6

item7

item8

item9

item10

item11

@import "style1.css";

.container{

width: 600px;

}

/* 1.nowrap:默认不换行,元素自动缩小。缩小的是元素与元素之间的间距,元素本身的属性(margin,padding,contianer)空间不会缩放,实在放不下会溢出。 */

.nowrap{

flex-direction: row;

flex-wrap: nowrap;

}

/* 2.wrap:换行,弹性元素超出容器边界的换到下一行显示 */

.wrap{

flex-direction: row;

flex-wrap: wrap;

}

/* 3.wrap-reverse:换行(反向),弹性元素超出容器边界的换到下一行显示 */

.wrap-reverse{

/* flex-direction: row;

flex-wrap: wrap-reverse; */

flex-flow: row  wrap-reverse;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、效果展示

cf2187a7881c4cfe93fa794063300c5d.png

3、总结

e764c7d624b8ae436e171d022dec2dee.png

四、弹性元素在主轴上的对齐方式与空间分布

1、代码实现

实例

flex-strat:主轴起点开始排序

1.单行

item1

item2

item3


1.多行

item1

item2

item3

item3

item4

item5

item6

item7


flex-end:主轴终点开始排序

1.单行

item1

item2

item3


1.多行

item1

item2

item3

item3

item4

item5

item6

item7


flex-center:弹性元素作为一个整体居中显示

1.单行

item1

item2

item3


1.多行

item1

item2

item3

item3

item4

item5

item6

item7


space-between:每一行的首位元素紧贴起止点,其他元素平分剩余空间

1.单行

item1

item2

item3


1.多行

item1

item2

item3

item3

item4

item5

item6

item7


space-around:每一行的每一个弹性元素的左右或上下"外边距"都相等

1.单行

item1

item2

item3


1.多行

item1

item2

item3

item3

item4

item5

item6

item7


space-evenly:每一行的每一个元素以及元素到起止点的空间全部相等

1.单行

item1

item2

item3


1.多行

item1

item2

item3

item3

item4

item5

item6

item7

@import "style1.css";

.container{

width: 500px;

}2

.wrap{

flex-wrap: wrap;

}

/* 从左向右排列显示 */

.flex-strat{

justify-content: flex-start;

}

/* 从右向左排列显示 */

.flex-end{

justify-content: end;

}

/* 将弹性元素作为一个整体居中显示 */

.flex-center{

justify-content: center;

}

/* 每一行的首位元素紧贴起止点,其他元素平分剩余空间 */

.space-between{

justify-content: space-between;

}

/* 每一个元素两边空间相等,相邻元素空间累加 */

.space-around{

justify-content: space-around;

}

/* 每一行的每一个元素以及元素到起止点的空间全部相等 */

.space-evenly{

justify-content: space-evenly;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、效果实现

61a62a21a732174a2bccd65de72b1a52.png

9fd096b6141a5005fb8835f8d4c1fdf8.png

8d2404a046a831990af0354b5f659643.png

3、总结

2a6fd188326acf8284f0c7e0bb5c8fc3.png

4、实例展示----实现导航的居中效果

1)代码展示

实例

首页

教学视频

社区问答

软件下载

联系我们

/* 链接样式重置 */

a{

text-decoration: none;

background-color: lightgreen;

color: black;

padding: 5px 10px;

margin: 0 5px;

border-radius: 5px 5px 0 0;

}

a:hover a:focus{

background-color: orangered;

color: white;

}

nav{

display: flex;

border-bottom: 1px solid gray;

}

nav{

justify-content: center;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2)效果展示

51febaa903ce12154ffa78fe23ebe1e8.png

五、弹性元素在垂直轴上的对齐方式与空间分布

1、代码展示

实例

弹性元素在垂直轴上的分布方式

1.stretch:默认值,元素高度自动拉伸充满整个容器

单行容器

item1

item2

item3

多行容器

item1

item2

item3

item4

item5

item6

item7


2.flex-start:元素紧贴容器起点

单行容器

item1

item2

item3

多行容器

item1

item2

item3

item4

item5

item6

item7


3.flex-end:元素紧贴容器终点

单行容器

item1

item2

item3

多行容器

item1

item2

item3

item4

item5

item6

item7


4.center:弹性元素作为一个整体在垂直方向居中显示

单行容器

item1

item2

item3

多行容器

item1

item2

item3

item4

item5

item6

item7


5.space-between:垂直方向首尾行紧贴起止点,其他元素均匀分配

多行容器

item1

item2

item3

item4

item5

item6

item7


6.space-around:垂直方向每一行的每一个弹性元素的左右或上下"外边距"都相等

多行容器

item1

item2

item3

item4

item5

item6

item7


7.space-between:垂直方向每一行的每一个元素以及元素到起止点的空间全部相等

多行容器

item1

item2

item3

item4

item5

item6

item7

@import "style1.css";

.container{

width: 500px;

height: 300px;

}

.wrap{

flex-wrap: wrap;

}

/* 单行容器 */

/* 默认值,元素高度自动拉伸充满整个容器 */

.stretch{

align-items: stretch;

}

.flex-start{

align-items: flex-start;

}

.flex-end{

align-items: flex-end;

}

/* 多行容器 */

/* align-content:设置多行容器中弹性元素在垂直轴上的对齐方式 */

.wrap-stretch{

align-content: stretch;

}

.wrap-flex-atart{

align-content: flex-start;

}

.wrap-flex-end{

align-content: flex-end;

}

.wrap-space-between{

align-content: space-between;

}

.wrap-space-around{

align-content: space-around;

}

.wrap-space-evenly{

align-content: space-evenly;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、效果展示

8c163958693844df27496af8837ed7d1.png

3ea9922faf079731bbe0a07d0cf7a841.png

405045d8e9f0026e4877ff067fe1ffab.png

b68dddc6460deaa7eb2a728c520a9f94.png

205b5f83b3ad71ebcd0c5826ac255df5.png

7907def212754b8ea39c03e694ac6cfd.png

3、总结

30d7765103cbbc6303be25cbd644f51a.png

08c4d7377bd36b727ad1568c5edad6f1.png

a82a8fb3328453e0875c0c80e5c01b4d.png

379d52e501ba08ef990727eceef2f4e6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值