1、弹性盒布局对齐模式

1.1、弹性盒子

在规定弹性盒子之中的子级元素换行显示之前父级元素必须是弹性盒子模型,也就是设置 display 为 flex

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>弹性盒布局</title>
<style type="text/css">
.div1{
width: 800px;
height: 410px;
display: flex;/*设置为弹性盒模型*/
border: 1px solid red;
margin: 0 auto;
}
.div1 a{
text-decoration: none;
display: inline-block;
flex: auto; /*子元素平均分配父级元素宽度与高度*/
margin: 5px;
background-color: #757575;
}
</style>
</head>
<body>
<div class="div1">
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
</div>
</body>
</html>

结果:

1.2、弹性盒子换行显示

flex-wrap:wrap ;    弹性容器为多行。该情况下弹性子项溢出的部分会被放置到新行,子项内部会发生断行。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>弹性盒布局</title>
<style type="text/css">
.div1{
width: 800px;
height: 410px;
display: flex;/*设置为弹性盒模型*/
flex-wrap: wrap; /*规定弹性盒子的内容换行显示*/
border: 1px solid red;
margin: 0 auto;
}
.div1 a{
text-decoration: none;
display: inline-block;
width: 150px;
height: 200px;
border: 1px solid red;
background-color: #757575;
}
</style>
</head>
<body>
<div class="div1">
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
</div>
</body>
</html>

结果:

从上面的结果来看虽然子元素换行显示了但是布局效果并不是很好,好的别着急我们接着往下看

1.3、弹性盒子两端对齐

CSS 语法:justify-content: flex-start|flex-end|center|space-between|space-around|initial|inherit;

属性值:
flex-start 默认值。项目位于容器的开头。
flex-end 项目位于容器的结尾。
center 项目位于容器的中心。
space-between 项目位于各行之间留有空白的容器内。
space-around 项目位于各行之前、之间、之后都留有空白的容器内。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。

justify-content 的属性值有很多,本次为大家介绍的是 space-between 也是在我们布局中比较好用的一中布局方式,缺点就是兼容性不是很理想

废话就不多说了,给大家试试效果

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>弹性盒布局</title>
<style type="text/css">
.div1{
width: 800px;
height: 410px;
display: flex;/*设置为弹性盒模型*/
flex-wrap: wrap; /*规定弹性盒子的内容换行显示*/
justify-content: space-between; /*规定弹性盒子两端对齐*/
border: 1px solid red;
margin: 0 auto;
}
.div1 a{
text-decoration: none;
display: inline-block;
width: 150px;
height: 200px;
background-color: #757575;
}
</style>
</head>
<body>
<div class="div1">
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
</div>
</body>
</html>

结果:

虽然效果已经很不错了,但是细心的童鞋不难发现我们的子元素并没有与父元素的底部平齐

1.4、弹性盒子交叉轴对齐

CSS 语法 align-content: stretch|center|flex-start|flex-end|space-between|space-around|initial|inherit;

stretch  默认值。元素被拉伸以适应容器。各行将会伸展以占用剩余的空间。如果剩余的空间是负数,该值等效于'flex-start'。在其它情况下 ,剩余空间被所有行平分,以扩大它们的侧轴尺寸。

center 元素位于容器的中心。各行向弹性盒容器的中间位置堆叠。各行两两紧靠住同时在弹性盒容器中居中对齐,保持弹性盒容器的侧轴起始内 容边界和第一行之间的距离与该容器的侧轴结束内容边界与第最后一行之间的距离相等。(如果剩下的空间是负数,则各行会向两个方向 溢出的相等距离。)

flex-start 元素位于容器的开头。各行向弹性盒容器的起始位置堆叠。弹性盒容器中第一行的侧轴起始边界紧靠住该弹性盒容器的侧轴起始边界,之 后的每一行都紧靠住前面一行。

flex-end 元素位于容器的结尾。各行向弹性盒容器的结束位置堆叠。弹性盒容器中最后一行的侧轴起结束界紧靠住该弹性盒容器的侧轴结束边界, 之后的每一行都紧靠住前面一行。

space-between 元素位于各行之间留有空白的容器内。各行在弹性盒容器中平均分布。如果剩余的空间是负数或弹性盒容器中只有一行,该值等效 于'flex-start'。在其它情况下,第一行的侧轴起始边界紧靠住弹性盒容器的侧轴起始内容边界,最后一行的侧轴结束边界紧靠住弹 性盒容器的侧轴结束内容边界,剩余的行则按一定方式在弹性盒窗口中排列,以保持两两之间的空间相等。

space-around 元素位于各行之前、之间、之后都留有空白的容器内。各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。 如果剩余的空间是负数或弹性盒容器中只有一行,该值等效于'center'。在其它情况下,各行会按一定方式在弹性盒容器中排列,以 保持两两之间的空间相等,同时第一行前面及最后一行后面的空间是其他空间的一半。

属性值有很多,本次介绍一下 space-between 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>弹性盒布局</title>
<style type="text/css">
.div1{
width: 800px;
height: 410px;
display: flex;/*设置为弹性盒模型*/
flex-wrap: wrap; /*规定弹性盒子的内容换行显示*/
justify-content: space-between; /*规定弹性盒子两端对齐*/
align-content: space-between; /*当弹性盒内容为多行显示是 规定交叉轴对齐*/
border: 1px solid red;
margin: 0 auto;
}
.div1 a{
text-decoration: none;
display: inline-block;
width: 150px;
height: 200px;
background-color: #757575;
}
</style>
</head>
<body>
<div class="div1">
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
<a href="##"></a>
</div>
</body>
</html>

结果:

非常快速的就完成了一个非常完美的布局了,是不是呢。

小结:这样的布局方式不会脱离标准文档流,所以就不会有需要清除浮动的问题

CSS3与弹性盒布局的更多相关文章

  1. 深入理解 CSS3 弹性盒布局模型

    Web 应用的样式设计中,布局是非常重要的一部分.布局用来确定页面上不同组件和元素的尺寸和位置.随着响应式用户界面的流行,Web 应用一般都要求适配不同的设备尺寸和浏览器分辨率.响应式用户界面设计中最 ...

  2. CSS3 弹性盒布局模型(转)

    简介 引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的条目进行排列. 对齐和分配空白空间.即便容器中条目的尺寸未知或是动态变化的,弹性盒布局模型也能正常的工作.在该布局模型中,容器会根 ...

  3. CSS3弹性盒布局方式

    一.CSS3弹性盒子 弹性盒子是CSS3的一种新布局模式. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的 ...

  4. CSS3弹性盒布局

    使用自适应的窗口弹性盒布局 可以使div总宽度等于浏览器宽度,而且可以随着浏览器的改变而改变. <!DOCTYPE html> <html lang="zh-CN" ...

  5. 请解释一下css3的flexbox(弹性盒布局模型),以及适用场景

    弹性盒模型是c3规范的新的布局方式,该布局模型的目的是提供一种更加高效的方式来对容器的条目进行布局.对齐和分配空间.在传统的布局中,block布局是把块级元素在垂直方向从上向下一次排列的,而inlin ...

  6. css3之弹性盒模型(Flex Box)

    CSS3 弹性盒子(Flex Box) 弹性盒子是 CSS3 的一种新的布局模式. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时 ...

  7. CSS3-box-flex弹性盒布局

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. css笔记 - flex弹性盒布局

    flex: display:-webkit-box | -moz-box;盒布局 -webkit-box-flex | -moz-box-flex;弹性盒布局 -webkit-box-ordinal- ...

  9. css怪异盒模型和弹性盒布局(flex)详解及其案例

    一.怪异盒模型 怪异盒模型的属性是box-sizing,他有两个属性值: 1.content-box 这是由 CSS2.1 规定的宽度高度行为.宽度和高度分别应用到元素的内容框.在宽度和高度之外绘制元 ...

随机推荐

  1. 模板 - 洲阁筛 + min25筛

    好像在某些情况下杜教筛会遇到瓶颈,先看着.暑假学一些和队友交错的知识的同时开这个大坑.

  2. ZOJ3164【区间dp】

     题意: 有n个人,有一种关系叫做8g关系,给出m个关系,给出n个人的阵列 问你最多能拿走多少人,拿走以后相邻就是相邻了 思路: 典型的区间dp: dp[i][j] 代表 i-j 最多能去多少人: 如 ...

  3. 手游性能优化之深入理解Texture Compression

    http://gad.qq.com/article/detail/7154875 一.引子 手游项目开发日常里,经常有美术同学搞不清Photoshop制图软件与Unity3D游戏引擎之间的图片asse ...

  4. OPENGL_单位长度对应屏幕像素

    gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar) fovy:视角,指定视景体的视野的角度,以度数为单 ...

  5. 部署spark 1.3.1 standalong模式

    之前已经写过很多次部署spark 的博客,但是之前部署都是照瓢画葫芦,不得其中的细节,并且以前都是部署spark on yarn 部署环境 scala 2.10.2,jdk 1.6,spark 版本1 ...

  6. MongoDB 删除数据

    删除mongodb集合中的数据可以使用remove()函数.remove()函数可以接受一个查询文档作为可选参数来有选择性的删除符合条件的文档.remove()函数不会删除集合本身,同时,原有的索引也 ...

  7. [題解](DP)CF713C_Sonya and Problem Wihtout a Legend

    對於不嚴格單調的我們可以n^2DP,首先每個數一定在原數組中出現過,如果沒出現過不如減小到出現過的那個花費更小,效果相同 所以f[i][j]表示把i改到離散化后j的最小代價,每次維護前一狀態最小值mn ...

  8. Python 去除列表中重复的元素(转载http://blog.csdn.net/zhengnz/article/details/6265282)

    比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2   还有一种据说速度更快的,没测试过两者的速度 ...

  9. python+selenium+requests爬取qq空间相册时遇到的问题及解决思路

    最近研究了下用python爬取qq空间相册的问题,遇到的问题及解决思路如下: 1.qq空间相册的访问需要qq登录并且需是好友,requests模块模拟qq登录略显麻烦,所以采用selenium的dri ...

  10. 093 Restore IP Addresses 复原IP地址

    给定一个只包含数字的字符串,复原它并返回所有可能的IP地址格式.例如:给定 "25525511135",返回 ["255.255.11.135", " ...