css垂直置中@qunar

來源:互聯網
上載者:User

標籤:style   http   java   使用   os   strong   

1、div的高度已知---line-hight
   <div>     <span><img src="http://www.baidu.com/img/baidu_sylogo1.gif" alt="Logo" />固定高寬,圖片垂直局中</span>  </div>

   <style>

  .vertical {  width:500px; height:220px;line-height:220px;border: 1px solid;text-align: center;  }  .vertical img {vertical-align: middle;  }  </style>  <!--[if IE 6]>  <style>    .vertical span {  height: 100%; /* 要保證和父元素高度一樣才行 */writing-mode: tb-rl;vertical-align: middle;   }  </style>  <![endif]-->      

只要給容器設定 line-height 和 height,並使兩值相等,再加上 over-flow: hidden

1.同時支援塊級和內聯極元素

2.支援所有瀏覽器

3.IE中不支援img等置中

2、定位方法垂直置中顯示圖片--height已知
  <style>  .vertical{width:300px;height:200px;display:table;text-align:center;border:solid 1px red;  }  .vertical span{display:table-cell;vertical-align:middle;border:solid 1px blue;  }  .vertical span img{border:dashed 1px green;  }  </style>  <!--[if lte IE 7]>  <style>  .vertical{position:relative;overflow:hidden;  }  .vertical span{position:absolute;left:50%;top:50%;  }  .vertical span img{position:relative;left:-50%;top:-50%;  }  </style>  <![endif]-->
   <div>      <span><img src="http://www.baidu.com/img/baidu_sylogo1.gif" alt="Logo" /></span>  </div>

  vertical-align適用於:內聯及 table-cell 元素;text-align適用於塊元素

3、未知高度垂直置中--resiez
  <style type="text/css">  .demo{resize:both;overflow:hidden;width:100px;height:100px;background:#aaa;display:inline-block;font-size:0;   }  .demo p{display:inline-block;vertical-align:middle;font-size:16px;  }  .demo::after{display:inline-block;height:100%;width:0;content:‘\0020‘;vertical-align:middle;  }    </style>

   <div>

<p>ddd</p>  </div>

  IE6-8b不支援

4、利用button實現垂直置中
   /*單行文本對齊:button*/    .demo{      width:600px;      height:100px;      background:#fcc;      border: 1px solid #596480;    }    button{      margin:0;      padding:0;    }    .demo button{      width:0;      height:100px;      vertical-align:middle;      overflow:hidden;    }    .demo span{      /*這個不能省*/      vertical-align:middle;    }  <h2>單行文本垂直置中:button</h2>   <div class="demo">    <button>test</button>    <span>單行文本垂直對齊:button,不能置中對齊</span>  </div>

   此方法不可以實現文本置中對齊

5、多行文本對齊:定位+百分比
  <h2>多行文本垂直置中:定位+百分比</h2>  <div class="mul-text">      <div class="outter">         <span class="inner">             多行文本垂直置中多行文本垂直置中多行文本垂直置中多行文本垂直置中多行文本垂直置中多行文本垂直置中             多行文本垂直置中多行文本垂直置中        </span>     </div>  </div>     /*多行文本置中:1*/    .mul-text{        display: table-cell;        width:600px;        height: 100px;        vertical-align: middle;        text-align:center;        border: 1px solid #596480;        background: #ffc;        /*相容ie6,7*/        *position: relative;      }    .outter{        /*該div相對父div(class=mul-text)垂直對齊,使用的是絕對位置*/        *position: absolute;        *top: 50%;        *left: 0;    }    .inner{        /*相對父div(class=outter)進行相對定位,inner        會相對outter行框進行顯示*/        *position: relative;        /*設定top可以使得inner相對outter置中*/        *top: -50%;        *left: 0;            }
6、多行文本垂直置中:after
    <h2>多行文本垂直置中:after</h2>    <div class="mul-text-2">                 <span class="inner-2">         多行文本顯示多行文本顯示多行文本顯示多行文本顯多行示多行文本顯示多行文本      </span>      <span></span>              </div>     /*多行文本對齊:after*/    .mul-text-2{        width:600px;        height:100px;        background:#aa8;        /*font-size不能少*/        font-size:0;        overflow:hidden;        text-align:center;    }    .inner-2,.after,.mul-text-2:after{        display:inline-block;        vertical-align:middle;    }    .inner-2{        font-size:18px;    }    .after,.mul-text-2:after{        /*清除浮動*/        content:"\0200";        overflow:hidden;        width:0;        height:100px;        visibility:hidden;    }
7、背景圖片置中
   <h2>圖片垂直置中:行高</h2>       <div class="img-text">       <span>sssssss1</span>       <div class=‘img-div‘><i></i></div>   </div>    /*背景圖片*/    .img-text{        width:600px;        height:100px;        border:#f63;        border: 1px solid #596480;           vertical-align:middle;         text-align:center;         font-size:0;      }         .img-text span{        font-size:15px;        display:inline-block;        height:100px;        line-height:100px;    }    .img-div{        width:134px;        height:44px;                display:inline-block;         vertical-align:middle;           }    .logo{        display:inline-block;        background:url(./img/logo.png);        width:134px;        height:44px;       }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.