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:欢迎指正

 

posted @ 2016-09-03 23:44  心似一片青苔  阅读(627)  评论(1编辑  收藏  举报