css处理水平居中问题(淘宝双飞翼布局)
1、水平居中设置-行内元素
通过父元素设置 1 text-align:center; ,让父元素的内容居中
2、水平居中设置-定宽块状元素
块状元素的宽度width为固定值,通过设置“左右margin”值为“auto”来实现居中的
例子:
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>定宽块状元素水平居中</title> <style> div{ width: 200px;/*固定的宽度*/ margin: 20px auto;/*左右margin设置为auto*/ border: 1px solid red; } </style> </head> <body> <div>我是定宽块状元素,我要水平居中显示。</div> </body> </html>
3、水平居中设置-不定宽块状元素
方法1. 加入 table 标签
例子:
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>不定宽块状元素水平居中</title> 6 <style> 7 table{ 8 margin:0 auto; 9 } 10 /*下面是任务区代码*/ 11 .wrap{ 12 background:#ccc; 13 } 14 </style> 15 </head> 16 <body> 17 <table> 18 <tbody> 19 <tr><td> 20 <div class="wrap"> 21 我要水平居中 22 </div> 23 </td></tr> 24 </tbody> 25 </table> 26 27 </body> 28 </html>
方法2. 设置 display:inline; 方法,与第一种类似,显示类型设为行内元素,进行不定宽元素的属性设置
例子:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>不定宽块状元素水平居中</title> <style> .container{text-align:center;} .container ul{list-style:none;margin:0;padding:0;display:inline;} .container li{margin-right:8px;display:inline;} </style> </head> <body> <div class="container"> <ul> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> </div> </body> </html>
方法3. 设置 position:relative 和 left:50% 利用相对定位的方式,将元素向左偏移 50% ,即达到居中的目的
例子:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>不定宽块状元素水平居中</title> <style> /*下面是代码任务区*/ .wrap{ clear:both; float:left; position:relative; left:50% } .wrap-center{ background:#ccc; position:relative; left:-50%; } </style> </head> <body> <!--下面是代码任务区--> <div class="wrap"> <div class="wrap-center">我们来学习一下这种方法。</div> </div> </body> </html>
PS:淘宝双飞翼布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>淘宝布局</title> <style type="text/css"> * { margin: 0; padding: 0 } .grid-s5m0e5 { width: 100%; color: #fff; overflow: hidden; *zoom: 1; } .col-main { float: left; width: 100%; min-height: 30px; background: #333; } .col-sub { float: left; width: 190px; min-height: 30px; background: #666; margin-left: -100%; } .col-extra { float: left; width: 190px; min-height: 30px; background: #999; margin-left: -190px; } .main-wrap { margin: 0 200px; } .col-main, .col-sub, .col-extra { /*margin-bottom: -99999px;*/ /*padding-bottom: 99999px;*/ } </style> </head> <body> <div class="grid-s5m0e5"> <div class="col-main"> <div class="main-wrap"> 我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧! </div> </div> <div class="col-sub">我是附加列dsffffffffffffffff我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是dsfassssssssssssssssssssssssssssssssssssssss </div> <div class="col-extra">我是附加列dsffffffffffffffff我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!我是主列,出来吧!fffffffffffffffafadsffffffffffffffffffffffffffffffffffffffffff </div> </div> </body> </html>
ps:欢迎指正
清风徐来,水波不兴