-->CSS3 分栏布局
-->CSS3 弹性布局
-->CSS3 响应式设计<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .box{ width:700px; border:1px solid red; padding:10px; margin:50px auto; column-count:3;/*控制栏数*/ /*column-width:100px;*//*每栏的宽度*/ column-gap:20px;/*两栏之间的间距*/ column-rule:2px dashed blue;/*栏与栏的间隔线*/ } .box h1{ font-size: 30px; text-align: center; /* column-span : all / none; 标题是否跨栏显示 */ column-span:all; } .box p{ font-size: 25px; text-indent: 2em; line-height: 150%; } </style> </head> <body> <div class="box"> <h1>标题标题标题标题标题标题标题</h1> <p>文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章</p> <p>文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章</p> </div> </body> </html>
适应性强,在做不同屏幕分辨率的界面时非常实用
可以随意按照宽度、比例划分元素的宽高
可以轻松改变元素的显示顺序
弹性布局实现快捷,易维护
2、弹性布局新版本&老版本语法
/*新版本写法*/
display: flex; 伸缩盒子 align-items: center | flex-start | flex-end ; 对齐方式 /*垂直居中*/ justify-content: center | flex-start | flex-end ; 对齐方式 /*水平居中*/ flex-direction: row row-reverse 水平布局 | column column-reverse 垂直布局 flex: number; 分配空间 order: number; 显示顺序 body { display: -webkit-box; /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */ display: -moz-box; /* 老版本语法: Firefox (buggy) */ display: -ms-flexbox; /* 混合版本语法: IE 10 */ display: -webkit-flex; /* 新版本语法: Chrome 21+ */ display: flex; /* 新版本语法: Opera 12.1, Firefox 22+ */ /*垂直居中*/ /*老版本语法*/ -webkit-box-align: center; -moz-box-align: center; /*混合版本语法*/ -ms-flex-align: center; /*新版本语法*/ -webkit-align-items: center; align-items: center; /*水平居中*/ /*老版本语法*/ -webkit-box-pack: center; -moz-box-pack: center; /*混合版本语法*/ -ms-flex-pack: center; /*新版本语法*/ -webkit-justify-content: center; justify-content: center; margin: 0; height: 100%; width: 100% /* needed for Firefox */ }
<p>box-ordinal-group:number ; <span style="color:#00B050;">子元素</span>显示顺序</p><p><span style="color:red;">新语法:</span><span style="color:red;">order: number;</span></p>
2-1、弹性布局老版本写法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;list-style: none;} html,body{ width:100%; height:100%; display: box;/*将一个元素的子元素以弹性布局进行布局*/ display: -webkit-box; display: -moz-box;/*火狐*/ display: -o-box;/*欧朋*/ display: -ms-flexbox;/*欧朋*/ -webkit-box-orient:horizontal;/*子元素的排列方式--横向*/ /*box-orient:vertical;*//*子元素的排列方式--竖向*/ -webkit-box-align:center;/*子元素的对齐方式--水平*/ -webkit-box-pack:center;/*子元素的对齐方式--垂直*/ } .wrap{ width:90%; height:90%; background: pink; display: -webkit-box; -webkit-box-orient:vertical; } .header{ height:60px; display: -webkit-box; -webkit-box-orient:horizontal; } .header .logo{ width:200px; height:60px; background: #7AD1D4; } .header .nav{ -webkit-box-flex:3; height:60px; background: #97F59A; } .content{ /*box-flex:number ;--子元素如何分配剩余空间*/ -webkit-box-flex:3; background: #E389F7; display: -webkit-box; -webkit-box-orient:horizontal; } .content .con1{ width:150px; background: #F0B7A9; -webkit-box-ordinal-group:2; } .content .con2{ -webkit-box-flex:3; background: #9E9EE5; -webkit-box-ordinal-group:3; } .content .con3{ -webkit-box-flex:2; background:#F4F56E; -webkit-box-ordinal-group:1; } .footer{ height:100px; background: #8E7694; } </style> </head> <body> <div class="wrap"> <div class="header"> <div class="logo">上左--宽高固定</div> <div class="nav">上右--高度固定,宽度自适应</div> </div> <div class="content"> <div class="con1">中1--高度自适应</div> <div class="con2">中2--高度自适应,宽度自适应</div> <div class="con3">中3--高度自适应</div> </div> <div class="footer">底部</div> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;list-style: none;} html,body{ width:100%; height:100%; display: flex;/*将一个元素的子元素以弹性布局进行布局*/ display: -webkit-flex; display: -moz-box;/*火狐*/ display: -o-box;/*欧朋*/ display: -ms-flexbox;/*欧朋*/ flex-direction:row;/*子元素的排列方式--横向*/ /*flex-direction:column;*//*子元素的排列方式--竖向*/ align-items:center;/*子元素的对齐方式--水平*/ justify-content:center;/*子元素的对齐方式--垂直*/ } .wrap{ width:90%; height:90%; background: pink; display: -webkit-flex; /*-webkit-box-orient:vertical;*/ flex-direction: column; } .header{ height:60px; display:-webkit-flex; /* -webkit-box-orient:horizontal; -webkit-box-direction:reverse; */ flex-direction: row-reverse;/*子元素的排列方式--横向反向*/ } .header .logo{ width:200px; height:60px; background: #7AD1D4; } .header .nav{ /*-webkit-box-flex:3;*/ flex:3;/*子元素如何分配剩余空间*/ height:60px; background: #97F59A; } .content{ /*box-flex:number ;--子元素如何分配剩余空间*/ /*-webkit-box-flex:3;*/ flex:3; background: #E389F7; /*display: -webkit-box;*/ display: -webkit-flex; /*-webkit-box-orient:horizontal;*/ flex-direction: row;/*子元素的排列方式--横向*/ } .content .con1{ width:150px; background: #F0B7A9; order:2; } .content .con2{ /*-webkit-box-flex:3;*/ flex:3; background: #9E9EE5; order:3; } .content .con3{ /*-webkit-box-flex:2;*/ flex:2; order:2; background:#F4F56E; order:1; } .footer{ height:100px; background: #8E7694; } </style> </head> <body> <div class="wrap"> <div class="header"> <div class="logo">上左--宽高固定</div> <div class="nav">上右--高度固定,宽度自适应</div> </div> <div class="content"> <div class="con1">中1--高度自适应</div> <div class="con2">中2--高度自适应,宽度自适应</div> <div class="con3">中3--高度自适应</div> </div> <div class="footer">底部</div> </div> </body> </html>
@media only screen and (min-device-pixel-ratio: 2)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{margin:0;padding:0;list-style: none;} @media screen and (min-width:1024px){ .box{ height:300px; background: red; color:#fff; } } @media screen and (min-width:720px) and (max-width:1024px){ .box{ height:200px; background: blue; color:pink; } } @media screen and (min-width:320px) and (max-width:720px){ .box{ height:100px; background:orange; color:#666; } } </style> </head> <body> <div class="box"> 12 </div> </body> </html>