CSS3弹性盒模型开发笔记(三)


Posted in HTML / CSS onApril 26, 2016

本文介绍了CSS3弹性盒模型,供大家参考,大家亦可以结合CSS3弹性盒模型开发笔记(一)、CSS3弹性盒模型开发笔记(二)进行学习,具体内容如下

box-pack和box-align属性

当弹性元素和非弹性元素混合排版时,有可能会出现所有子元素的尺寸大小或小于盒子的尺寸,从而出现盒子空间不足或者富余的情况,这时就需要一种方法来管理盒子的空间。如果子元素的总尺寸小于盒子的尺寸,则可以使用box-align和box-pack属性进行管理。

box-pack属性可以在水平方向上对盒子的富余空间进行管理,该属性的基本语法如下:

box-pack:start | end | center | justify

取值说明:

start:所有子元素都显示在盒子的左侧,富余的空间显示在盒子的右侧。

end:所有子元素都显示在盒子的右侧,富余的空间显示在盒子的左侧。

justify:富裕的空间在子元素之间平均分配。在第一个子元素之前和最后一个子元素之后不分配空间。

center:富余的空间在盒子的两侧平均分配。

  box-align属性可以在垂直方向上对盒子的富余空间进行管理,该属性的基本语法如下:

box-align:start | end | center | baseline | stretch

取值说明:

start:所有子元素沿着盒子的上边缘排列,都显示在盒子的上部,富余的空间显示在盒子的底部。

end:所有子元素沿着盒子的下边缘排列,都显示在盒子的底部,富裕的空间显示在盒子的上部。

center:富余的空间在盒子的上下两侧平均分配,即上面一半,下面一半。

baseline:所有盒子沿着它们的基线排列,富余的空间可前可后显示。

stretch:每个子元素的高度被调整到适合盒子的高度显示。

实战体验:自适应布局居中设计

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <body>  
  2. <div id="box"><img src="images/china.gif" /></div>     
  3. </div>  
  4. </body>  
  5.   

CSS3代码:

CSS Code复制内容到剪贴板
  1. <style type="text/css">   
  2. /*明确定义页面文档满窗口显示*/  
  3. body,html{   
  4.     height:100%;   
  5.     width:100%;   
  6. }   
  7. body{/*清除页边距*/  
  8.     margin:0;   
  9.     padding:0;   
  10.     /*定义文档为弹性盒子显示*/  
  11.     display:box;   
  12.     display:-moz-box;   
  13.     display:-webkit-box;   
  14.     /*页面元素水平显示,针对本例可以省略*/  
  15.     box-orient:horizontal;   
  16.     -moz-box-orient:horizontal;   
  17.     -webkit-box-orient:horizontal;   
  18.     /*定义提示对话框页面水平居中显示*/  
  19.     box-pack:center;   
  20.     -moz-box-pack:center;   
  21.     -webkit-box-pack:center;   
  22.     box-align:center;   
  23.     /*定义提示对话框页面垂直居中显示*/  
  24.     -moz-box-align:center;   
  25.     -webkit-box-align:center;   
  26.     /*以背景方式模拟页面显示*/  
  27.     background:#04082b url(images/map1.jpg) no-repeat top center;   
  28. }   
  29. #box{   
  30.    border:1px solid red;   
  31.    padding:4px;   
  32. }   
  33. </style>   
  34.   

演示效果:

CSS3弹性盒模型开发笔记(三)

关于布局空间管理的进一步分析

分析布局空间管理的各种情况。

基本代码:

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5. <title>box-pack、box-align</title>  
  6. <style type="text/css">  
  7.   
  8. #box {   
  9.     border:solid 1px red;   
  10.     width:600px;   
  11.     height:400px;   
  12.   
  13.     display : -moz-box;   
  14.     display : -webkit-box;   
  15.     display : box;   
  16. }   
  17. #box div {   
  18.     margin:4px;   
  19.     border:solid 1px #eee;   
  20. }   
  21. #box div img { width:120px; }   
  22. </style>  
  23. </head>  
  24.   
  25. <body>  
  26. <div id="box">  
  27.     <div><img src="images/1.png" /></div>  
  28.     <div><img src="images/5.png" /></div>    
  29.     <div><img src="images/7.png" /></div>     
  30.     <div><img src="images/9.png" /></div>              
  31. </div>  
  32. </body>  
  33. </html>  
  34.   

演示效果:

CSS3弹性盒模型开发笔记(三)

子元素全部水平和垂直居中显示显示

CSS Code复制内容到剪贴板
  1. #box{   
  2.     /*水平居中管理*/  
  3.     box-pack:center;   
  4.     -moz-box-pack:center;   
  5.     -webkit-box-pack:center;   
  6.     /*垂直居中管理*/  
  7.     box-align:center;   
  8.     -moz-box-align:center;   
  9.     -webkit-box-align:center;   
  10. }   
  11.   

演示效果:

CSS3弹性盒模型开发笔记(三)

子元素全部位于盒子的左下角,富余空间位于右上角

CSS Code复制内容到剪贴板
  1. #box{   
  2.     /*水平居中管理*/  
  3.     box-pack:start;   
  4.     -moz-box-pack:start;   
  5.     -webkit-box-pack:start;   
  6.     /*垂直居中管理*/  
  7.     box-align:end;   
  8.     -moz-box-align:end;   
  9.     -webkit-box-align:end;   
  10. }   
  11.   

演示效果:

CSS3弹性盒模型开发笔记(三)

- 子元素水平平均分布,垂直伸展展示

CSS Code复制内容到剪贴板
  1. #box{   
  2.     /*水平居中管理*/  
  3.     box-pack:justify;   
  4.     -moz-box-pack:justify;   
  5.     -webkit-box-pack:justify;   
  6.     /*垂直居中管理*/  
  7.     box-align:stretch;   
  8.     -moz-box-align:stretch;   
  9.     -webkit-box-align:stretch;   
  10. }   
  11.   

演示效果:

CSS3弹性盒模型开发笔记(三)

- 子元素水平平均分布,在垂直方向上按基线分布

CSS Code复制内容到剪贴板
  1. #box{   
  2.     /*水平居中管理*/  
  3.     box-pack:justify;   
  4.     -moz-box-pack:justify;   
  5.     -webkit-box-pack:justify;   
  6.     /*垂直居中管理*/  
  7.     box-align:baselinebaseline;   
  8.     -moz-box-align:baselinebaseline;   
  9.     -webkit-box-align:baselinebaseline;   
  10.     font-size:28px;   
  11. }   
  12.   

演示效果:

CSS3弹性盒模型开发笔记(三)

- 子元素全部位于盒子的右侧并平均分布,并按垂直顺序进行分布

CSS Code复制内容到剪贴板
  1. #box{   
  2.     /*水平居中管理*/  
  3.     box-pack:justify;   
  4.     -moz-box-pack:justify;   
  5.     -webkit-box-pack:justify;   
  6.     /*垂直居中管理*/  
  7.     box-align:end;   
  8.     -moz-box-align:end;   
  9.     -webkit-box-align:end;   
  10.     /*垂直分布*/  
  11.     box-orient:vertical;   
  12.     -moz-box-orient:vertical;   
  13.     -webkit-box-orient:vertical;       
  14. }   
  15.   

演示效果:

CSS3弹性盒模型开发笔记(三)

空间溢出管理

上述“子元素全部位于盒子的右侧并平均分布,并按垂直顺序进行分布”可以看出,弹性布局中盒子内的元素很容易“跑出”盒子的“包围圈”。这种现象被称为空间已出。与传统的盒模型一样,CSS允许使用overflow属性来处理溢出内容的显示方式。当然,我们还可以使用box-lines属性避免空间已出问题(目前各大浏览器支持不太好)。该属性语法如下:

box-lines:single | multiple

取值说明:

single:所有子元素都单行或者单行显示。

multiple:所有子元素可以多行或多列显示。

实战体验:让子元素分行显示

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <body>  
  2. <div id="box">  
  3.     <div><img src="images/1.png" /></div>  
  4.     <div><img src="images/2.png" /></div>  
  5.     <div><img src="images/3.png" /></div>  
  6.     <div><img src="images/4.png" /></div>  
  7.     <div><img src="images/5.png" /></div>  
  8.     <div><img src="images/6.png" /></div>  
  9.     <div><img src="images/7.png" /></div>  
  10.     <div><img src="images/8.png" /></div>  
  11. </div>  
  12. </body>  
  13.   

CSS3代码:

CSS Code复制内容到剪贴板
  1. <style type="text/css">   
  2. #box {   
  3.     border:solid 1px red;   
  4.     width:600px;   
  5.     height:400px;   
  6.     display : -moz-box;   
  7.     display : -webkit-box;   
  8.     display : box;   
  9. }   
  10. #box {/*定义子元素分行显示*/  
  11.     -moz-box-lines : multiple;   
  12.     -webkit-box-lines : multiple;   
  13.     box-lines : multiple;   
  14. }   
  15. #box div {   
  16.     margin:4px;   
  17.     border:solid 1px #aaa;   
  18.     -moz-box-flex: 1;   
  19.     -webkit-box-flex: 1;   
  20.     box-flex: 1;   
  21. }   
  22. #box div img { width:120px; }   
  23. </style>   
  24.   

演示效果:

CSS3弹性盒模型开发笔记(三)

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文地址:http://blog.csdn.net/lovejulyer/article/details/51234774

HTML / CSS 相关文章推荐
35款精致的 CSS3 和 HTML5 网页模板 推荐
Aug 03 HTML / CSS
image-set实现Retina屏幕下图片显示详细介绍
Dec 24 HTML / CSS
一款纯css3实现的非常实用的鼠标悬停特效演示
Nov 05 HTML / CSS
CSS3实现闪烁动画效果的方法
Feb 09 HTML / CSS
CSS3制作气泡对话框的实例教程
May 10 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
Jul 04 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
Apr 04 HTML / CSS
html5中JavaScript removeChild 删除所有节点
May 16 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
Jun 17 HTML / CSS
html5 冒号分隔符对齐的实现
Jul 31 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
Nov 22 HTML / CSS
css3 filter属性的使用简介
Mar 31 HTML / CSS
浅析两列自适应布局的3种思路
May 03 #HTML / CSS
CSS3 3D位移translate效果实例介绍
May 03 #HTML / CSS
详解CSS的border边框属性及其在CSS3中的新特性
May 10 #HTML / CSS
CSS3中border-radius属性设定圆角的使用技巧
May 10 #HTML / CSS
CSS3使用多列制作瀑布流
May 10 #HTML / CSS
使用CSS3的rem属性制作响应式页面布局的要点解析
May 24 #HTML / CSS
深入解读CSS3中transform变换模型的渲染
May 27 #HTML / CSS
You might like
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
JavaScript日历实现代码
2010/09/12 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
uni-app实现点赞评论功能
2019/11/25 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
Django接收自定义http header过程详解
2019/08/23 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Python3 元组tuple入门基础
2020/02/09 Python
python集合删除多种方法详解
2020/02/10 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
九州传奇上机题
2014/07/10 面试题
工厂总经理岗位职责
2014/02/07 职场文书
竞争上岗实施方案
2014/03/21 职场文书
经营管理策划方案
2014/05/22 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
Go web入门Go pongo2模板引擎
2022/05/20 Golang