zoukankan      html  css  js  c++  java
  • 关于html水平垂直居中的一些总结吧

    html水平垂直居中

    最近遇到很多居中的问题,就花点时间总结了一下放在这里,以后找也方便,0.0~~ 
    1.居中文本

    1 <div class="wrap">
    2       我在中间……
    3 </div>

    1.1. height+line-height+text-center(只能居中单行)

    1 .wrap{
    2     width:200px; 
    3     height:200px;
    4     border:1px solid red; 
    5     text-align: center;
    6     line-height: 200px;
    7 }
    ps:text-align:center只是将元素下面的内联元素居中显示

    1.2display:table-cell(多行固定高度居中)

    1 .wrap{
    2     width:200px; 
    3     height:200px;
    4     border:1px solid red; 
    5     text-align: center; 
    6     display:table-cell; 
    7     vertical-align: middle;
    8 }
    display:table-cell:ie67不管用,最好配合display:table;一起用
    ie67下:(以后也不用了,不过也放这儿吧)
    方法一:(通过em标签高度与父级等高,所以span和em居中就相当于span在父级居中)
    1 <div class="wrap">
    2    <span>
    3        我在中间…… 我在中间…… 我在中间…… 我在中间……
    4    </span>
    5    <em></em>
    6 </div>
     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     border:1px solid red; 
     5     text-align: center;
     6 }
     7 .wrap span{
     8     vertical-align: middle;
     9     display:inline-block; 
    10     width:180px;
    11 }
    12 .wrap em{
    13     height:100%;
    14     vertical-align: middle; 
    15     display:inline-block;
    16 }
    方法二:(通过给子元素增加一个绝对定位的父级标签,再配合子元素的相对定位水平垂直居中)
    
    1 <div class="wrap">
    2     <span class="span1">
    3        <span class="span2">我在中间…… 我在中间…… 我在中间…… 我在中间……</span>
    4     </span>
    5 </div>
     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     border:1px solid red;
     5     display:table;
     6     position:relative; 
     7     overflow: hidden;
     8 }
     9 .wrap .span1{
    10     display:table-cell; 
    11     vertical-align: middle; 
    12     text-align: center;
    13     *position:absolute;
    14     top:50%;
    15     left:50%;
    16 }
    17 .wrap .span2{
    18     *position:relative;
    19     top:-50%;
    20     left:-50%;
    21 }

    1.3padding(内填充,不用多说)

    1 .wrap{
    2     width:200px;
    3     border:1px solid red;
    4     padding:50px 0;
    5 }

    2.居中元素

    1 <div class="wrap">
    2     <span></span>
    3 </div>

    2.1position:absolute+margin负值(必须要有宽高,才能计算margin)

     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     position:absolute; 
     5     top:50%; 
     6     left:50%; 
     7     margin-top:-101px; 
     8     margin-left:-101px;
     9     border:1px solid red;
    10 }
    11 .wrap span{ 
    12     width:80px; 
    13     height:80px; 
    14     background:red;
    15     position: absolute; 
    16     top:50%; 
    17     left:50%; 
    18     margin-top:-40px; 
    19     margin-left:-40px;
    20 }
    ps:position:absolute/fixed使内嵌支持宽高

    2.2Position:absolute+margin:auto

     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     position:absolute; 
     5     top:50%; 
     6     left:50%; 
     7     margin-top:-101px; 
     8     margin-left:-101px;
     9     border:1px solid red;
    10 }
    11 .wrap span{ 
    12     width:80px; 
    13     height:80px; 
    14     background:red;
    15     position: absolute; 
    16     top:0;
    17     right:0;
    18     bottom:0;
    19     left:0;
    20     margin:auto;
    21 }

    2.3position负值

    1 <div class="wrap">
    2     <span class="span1">
    3        <span class="span2">fds</span>
    4     </span>
    5 </div>
     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     position:absolute; 
     5     top:50%; 
     6     left:50%; 
     7     margin-top:-101px; 
     8     margin-left:-101px;
     9     border:1px solid red; 
    10 }
    11 .wrap .span1{
    12     position:absolute;
    13     top:50%;
    14     left:50%;
    15     width:80px;
    16     height:80px;
    17 }
    18 .wrap .span2{ 
    19     width:80px;
    20     height:80px;
    21     display:block;
    22     line-height:80px;
    23     text-align:center;
    24     background:red; 
    25     position:relative;
    26     top:-50%;
    27     left:-50%;
    28 }

    2.4transform: translate(-50%,-50%);(translate相对于自己偏移,不考虑兼容性的情况下,这个方法很好)

    1 <div class="wrap">
    2        <span >fds</span>
    3 </div>
     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     position:absolute; 
     5     top:50%; 
     6     left:50%; 
     7     margin-top:-101px; 
     8     margin-left:-101px;
     9     border:1px solid red;
    10 }
    11 .wrap span{     
    12     width:80px;
    13     height:80px;
    14     background:red;
    15     position:absolute;
    16     top:50%;left:50%;
    17     -webkit-transform: translate(-50%,-50%);
    18     -ms-transform: translate(-50%,-50%);
    19     -o-transform: translate(-50%,-50%);
    20     transform: translate(-50%,-50%);
    21 } 

    2.5并行一个标签

    1 <div class="wrap">
    2    <span></span>
    3    <em></em>
    4 </div>
     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     position:absolute; 
     5     top:50%; 
     6     left:50%; 
     7     margin-top:-101px; 
     8     margin-left:-101px;
     9     border:1px solid red; 
    10     text-align: center;
    11 }
    12 .wrap span{
    13     width:80px;
    14     height:80px;
    15     background:red;
    16     display:inline-block; 
    17     vertical-align: middle;
    18 } 
    19 .wrap em{
    20     height:100%;
    21     vertical-align:middle; 
    22     display:inline-block;
    23 }

    2.6display:table和display:table-cell

    1 <div class="wrap">
    2     <div>
    3         <span></span>
    4     </div>
    5 </div>
     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     position:absolute; 
     5     top:50%; 
     6     left:50%; 
     7     margin-top:-101px; 
     8     margin-left:-101px;
     9     border:1px solid red; 
    10     display:table;
    11 }
    12 .wrap div{
    13     display:table-cell;
    14     vertical-align: middle;
    15     text-align: center;
    16 }
    17 .wrap span{ 
    18     width:80px;
    19     height:80px;
    20     background:red; 
    21     display:inline-block;
    22 } 

    2.7display:box

    1 <div class="wrap">
    2     <span >fds</span>
    3 </div>
     1 .wrap{
     2     width:200px; 
     3     height:200px;
     4     position:absolute; 
     5     top:50%; 
     6     left:50%; 
     7     margin-top:-101px; 
     8     margin-left:-101px;
     9     border:1px solid red; 
    10     display: -webkit-box;
    11     -webkit-box-pack:center;
    12     -webkit-box-align:center;
    13 }
    14 .wrap span{
    15     width:80px;
    16     height:80px;
    17     background:red;
    18     display:block;
    19 }

    3.居中浮动元素

    1 <div class="wrap">
    2      <ul>
    3          <li>fdasfd</li>
    4          <li>fdsfds</li>
    5          <li>fdfds</li>
    6      </ul>
    7 </div>
     1 .wrap{
     2     width:800px; 
     3     height:200px;
     4     margin:200px auto;
     5     border:1px solid red; 
     6     position:relative;
     7     overflow: hidden;
     8 }
     9 .wrap ul{
    10     float: left; 
    11     position: relative; 
    12     left:50%;
    13     top:50%; 
    14     border:1px solid red; 
    15     height:100px; 
    16 }
    17 .wrap li{
    18     float: left; 
    19     width:100px; 
    20     height:100px; 
    21     background:red; 
    22     position: relative; 
    23     left:-50%;
    24     top:-50%; 
    25     margin-left:10px; 
    26     list-style: none; 
    27     _display:inline; /*ie6双边距*/
    28     *overflow: hidden;/*ie7下面不支持宽度*/
    29 }
  • 相关阅读:
    【bzoj1191】 HNOI2006—超级英雄Hero
    【poj3020】 Antenna Placement
    【poj1274】 The Perfect Stall
    【poj2724】 Purifying Machine
    【poj2226】 Muddy Fields
    【codevs1257】 打砖块
    【poj2186】 Popular Cows
    【poj1236】 Network of Schools
    【poj1144】 Network
    【poj3177】 Redundant Paths
  • 原文地址:https://www.cnblogs.com/dothin/p/4971703.html
Copyright © 2011-2022 走看看