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 相关文章推荐
灵活运用CSS3特性绘制简易版围棋效果
Sep 28 HTML / CSS
CSS3 简写animation
May 10 HTML / CSS
纯css3制作网站后台管理面板
Dec 30 HTML / CSS
利用CSS3实现单选框动画特效示例代码
Sep 26 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
Aug 01 HTML / CSS
HTML5 语音搜索只需一句代码
Jan 03 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
May 09 HTML / CSS
HTML5 3D衣服摇摆动画特效
Mar 17 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
Feb 13 HTML / CSS
canvas实现漂亮的下雨效果的示例
Apr 18 HTML / CSS
canvas 如何绘制线段的实现方法
Jul 12 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
Apr 10 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之第十天
2006/10/09 PHP
php中$this-&amp;gt;含义分析
2009/11/29 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
微信小程序学习之数据处理详解
2017/07/05 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
详解Django框架中的视图级缓存
2015/07/23 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
品管员岗位职责
2013/11/10 职场文书
一年级家长会邀请函
2014/01/25 职场文书
放牛班的春天观后感
2015/06/01 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS