css 居中

水平居中:

  1. 行内元素:父元素text-align:center;

  2. 确定宽度的块级元素:margin-left/right:auto;

  3. 不确定宽度的块级元素:

    a. 放在table的td里,table不是块级,但margin-left/right对它有效,table的宽度由它的内容决定。

      缺点:增加无语义标签,加深标签的嵌套次数。

    b. 将块级元素转化成inline,父元素taCenter

      缺点:不能设定长宽

    c. 父元素: float:left; position:relative; left:50%;

       子元素: position:relative; left:-50%;

     据说保留块元素block,不添加无语义标签,不增加嵌套深度

     但我不常用,在body下的主div中设置时,时常不好使,用text-align和margin一般就行了。position:relative会带来一定副作用。

竖直居中:

  1. 父元素不确定的文本、图片、块级元素的竖直居中

    给父容器设置相同的上下边距 padding-top/bottom

  2. 父元素高度确定的单行文本的竖直居中

    设置父元素line-height=父元素height

            (父子元素都加 vertical-align:middle)

  3. 父元素高度确定的多行文本、图片、块级元素的竖直居中

    a. 又见table,td隐式设置vertical-align:middle,再给td一个height就可以了

    b. 对IE8和FF用vertical-align:middle (只对td/th有效)

                     加display:table-cell实现

       对IE6/7用特定格式的hack实现  * _ relative top bottom 类似水平居中3c

原文地址:https://www.cnblogs.com/frostbelt/p/2388723.html