不定高度内容垂直居中

效果:

html:
<div id="demo">
    <div class="box1">
        <div class="box2">一旦你娶了中国太太,就等于娶了她全家,不到半年,她爹、她妈、她二姐、她二姐的孩子就排着队全来了……我好端端的一个美国家庭,一眨眼工夫,就被中国人给占领了。</div>
    </div>
</div>

css:
#demo {
    display: table-cell;  /*表格单元格*/
    vertical-align: middle;  /*vertical-align属性只会对拥有valign特性的(X)HTML标签起作用*/
    height:200px;
    width: 300px;
    text-align: center;
    background-color: #abcdef;
     *position:relative;
}
.box1 {
    *position:absolute;
    *top:50%;
}
.box2 {
    *position:relative;
    *top:-50%;
    *left:-50%;
}

原理:


准浏览器及ie8以上(包括ie8)使用display: table-cell; vertical-align: middle; 即可实现,无需嵌
套.box1和.box2,这两个class的嵌套是为了兼容ie6和7不支持display: table-cell 而加的,标准浏览器及ie8以上
(包括ie8)top值如果使用百分比参数的话,其父元素必须设定高度,否则无效,ie6和7无需设定即可生效。

时间: 2024-11-05 00:42:20

不定高度内容垂直居中的相关文章

不定高度实现垂直居中(兼容低版本ie)

css实现垂直居中的方法比较多,但是每种方法的缺陷也很明显,我尝试对其中一种方法进行了改良 先看原方法: <div class="parent"> <div class="child"></div> </div> .parent{ width:500px; height:500px; position:relative; } .child{ width:100px; height:100px; position:abs

css不定高度实现垂直居中

1.不知道自己高度和父容器高度的情况下, 利用绝对定位只需要以下三行: parentElement{ position:relative; } childElement{ position: absolute; top: 50%; transform: translateY(-50%); } 2.若父容器下只有一个元素,且父元素设置了高度,则只需要使用相对定位即可 parentElement{ height:xxx; } .childElement { position: relative; t

不定宽高垂直居中分析

昨天做移动项目是,遇到这样一个案例,如图,图片容器随着视口宽度进行自由拉伸扩张,图片不定宽高,垂直居中: 当时做这个布局的时候,我一直想到用display:table-cell通过vertical-align:middle,来实现居中,可以当我在同一个节点用position:absolute,会导致此居中问题失效. 最后想到的解决方案,案例如下,不定宽高垂直居中: <!DOCTYPE HTML> <html lang="en-US"> <head>

DIV 内容垂直居中

虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处.比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果,勉强过关. 要让div中的内容垂直居中,无非有以下几种方法,等我一一列举: 一.行高(line-height)法如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:30px; width:10

[转]如何让div中的内容垂直居中

转自:http://blog.163.com/yan_1990/blog/static/197805107201211311515454/ 虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处.比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果,勉强过关. 要让div中的内容垂直居中,无非有以下几种方法,等我一一列举: 一.行高(line-height)法如果要垂直居中的只有一行或几个文字,那它的制作最

使用CSS使内容垂直居中的N中方法。

使用css+div使页面内容水平居中的方法大家并不陌生,那么如何使内容垂直居中呢? OK,下面进入正题,不如我们使用做高中数学题时经常用的思想:分情况讨论. 1.当待垂直居中的DIV高宽为已知时: 1.1绝对定位法: CSS: .middle-div{ width:300px; height:200px; position:absolute; left:50%; top:50%; margin:-100px 0 0 -150px } .parent-div{ position:relitive;

如何让div中的内容垂直居中(转)

虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处.比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果,勉强过关. 如何让div中的内容垂直居中 来源:黄超 要让div中的内容垂直居中,无非有以下几种方法,等我一一列举: 一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line

使用CSS使内容垂直居中的N中方法

用css+div使页面内容水平居中的方法大家并不陌生,那么如何使内容垂直居中呢? OK,下面进入正题,不如我们使用做高中数学题时经常用的思想:分情况讨论. 1.当待垂直居中的DIV高宽为已知时: 1.1绝对定位法: CSS: .middle-div{ width:300px; height:200px; position:absolute; left:50%; top:50%; margin:-100px 0 0 -150px } .parent-div{ position:relitive;

如何让div中的内容垂直居中

虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处.比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果,勉强过关. 要让div中的内容垂直居中,无非有以下几种方法,等我一一列举: 一.行高(line-height)法如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:30px; width:10