zoukankan      html  css  js  c++  java
  • div中的内容垂直居中的五种方法

    转载博客:http://www.cnblogs.com/moqiutao/p/4807792.html

    一、行高(line-height)法

    如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如:

    p { height:30px; line-height:30px; width:100px; overflow:hidden; }

    这段代码可以达到让文字在段落中垂直居中的效果。

    二、内边距(padding)法

    另一种方法和行高法很相似,它同样适合一行或几行文字垂直居中,原理就是利用padding将内容垂直居中,比如:

    p { padding:20px 0; }

    这段代码的效果和line-height法差不多。

    三、模拟表格法

    将容器设置为display:table,然后将子元素也就是要垂直居中显示的元素设置为display:table-cell,然后加上vertical-align:middle来实现。

    html结构如下:

    <div id="wrapper">
        <div id="cell">
            <p>测试垂直居中效果测试垂直居中效果</p>
            <p>测试垂直居中效果测试垂直居中效果</p>
        </div>
    </div>

    css代码:

    #wrapper {display:table;width:300px;height:300px;background:#000;margin:0 auto;color:red;}
    #cell{display:table-cell; vertical-align:middle;}

    实现如图所示:

    遗憾的是IE7及以下不支持。

    四、CSS3的transform来实现

    css代码如下:

    .center-vertical{
      position: relative;
      top:50%;
      transform:translateY(-50%);
    }.center-horizontal{
      position: relative;
      left:50%;
      transform:translateX(-50%); 
    }

    五:css3的box方法实现水平垂直居中

    html代码:

    <div class="center">
      <div class="text">
        <p>我是多行文字</p>
        <p>我是多行文字</p>
        <p>我是多行文字</p>
      </div>
    </div>

    css代码:

    .center {
      width: 300px;
      height: 200px;
      padding: 10px;
      border: 1px solid #ccc;
      background:#000;
      color:#fff;
      margin: 20px auto;
    
    
      display: -webkit-box;
      -webkit-box-orient: horizontal;
      -webkit-box-pack: center;
      -webkit-box-align: center;
      
      display: -moz-box;
      -moz-box-orient: horizontal;
      -moz-box-pack: center;
      -moz-box-align: center;
      
      display: -o-box;
      -o-box-orient: horizontal;
      -o-box-pack: center;
      -o-box-align: center;
      
      display: -ms-box;
      -ms-box-orient: horizontal;
      -ms-box-pack: center;
      -ms-box-align: center;
      
      display: box;
      box-orient: horizontal;
      box-pack: center;
      box-align: center;
    }

     结果如图:

  • 相关阅读:
    HDU 5486 Difference of Clustering 图论
    HDU 5481 Desiderium 动态规划
    hdu 5480 Conturbatio 线段树 单点更新,区间查询最小值
    HDU 5478 Can you find it 随机化 数学
    HDU 5477 A Sweet Journey 水题
    HDU 5476 Explore Track of Point 数学平几
    HDU 5475 An easy problem 线段树
    ZOJ 3829 Known Notation 贪心
    ZOJ 3827 Information Entropy 水题
    zoj 3823 Excavator Contest 构造
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/6714662.html
Copyright © 2011-2022 走看看