最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
css实现未知尺寸元素水平垂直居中的方法
时间:2014-04-23 编辑:简简单单 来源:一聚教程网
1.table表格
水平垂直居中的随意内容 | 水平垂直居中的随意内容 | …类似这样的,
代码如下 | 复制代码 |
水平垂直居中的随意内容
#demo{ display:table; width:500px; margin:10px auto; background:#eee; } #demo p{ display:table-cell;vertical-align:middle; height:100px; } |
该方法只兼容ie8+.要解决兼容问题的话,可能要用到下面这个通用方法:
代码如下 | 复制代码 |
html部分 content /* CSS 部分的代码实现:整体代码参见上述 demo*/ |
3.inline-block实现
代码如下 | 复制代码 |
水平垂直居www.111com.net中的随意内容 #demo{ height:100px; text-align:center; } #demo:after{ display:inline-block; width:0; height:100%; vertical-align:middle; content:”; } #demo p{ display:inline-block; vertical-align:middle; } |
垂直方向的对齐排版需使用 vertical-align ,并且只应用于inline level, inline-block level 及 table-cells 元素上;其次 vertical-align 的对齐就基于每个 line box(行框) 的,简单的说,inline level元素按照 Normal flow 水平排版出一行就会形成一个line box,其高度由内容形成,如果换行,则又是另一个line box,所有一段文本可能会分布在多个line box里,这些不重叠的line box被称作为a vertical stack of line boxes(一个垂直堆叠的线框集合)这些。同样的该方法支持ie8+.
用inline-block布局会产生一个间隙的bug,虽然能解决,但是还是不推荐用。具体解决方法:
代码如下 | 复制代码 |
这是一个终极实现的水平垂直居中实例 #demo{ height:100px; text-align:center; font-size:0; } #demo:after,#demo span{ display:inline-block; *display:inline; *zoom:1; width:0; height:100%; vertical-align:middle; } #demo:after{ content:”; } #demo p{ display:inline-block; *display:inline; *zoom:1; vertical-align:middle; font-size:16px; } |
这个方法基本无Bug了,支持ie6+也解决了间隙的bug.
补充方法:定义定位实现未知高度元素的垂直居中(兼容IE5.5678910 firefox chrome)
需要在以上基础上改变HTML结构,把img放在一个元素中间,如下:
代码如下 | 复制代码 |
在支持display为table-cell的浏览器中依然用vertical-align:middle来实现,在IE5.5IE6IE7中利用定位来实现垂直居中,具体代码如下:
代码如下 | 复制代码 |
.box { |
实现绝对居中的另类方法
代码如下 | 复制代码 |
绝对居中 |
兼容性:IE8+、firefox、chrome
注意:这里必须设置height属性才能居中
相关文章
- css中元素水平垂直居中4种方法介绍 06-28
- CSS 鼠标点击拖拽效果代码展示 10-31
- CSS使用SVG实现动态分布的圆环发散路径动画教程 10-31
- css3中仿放大镜效果的几种方式原理介绍 10-26
- CSS3切割轮播图的代码展示 10-26
- CSS组合选择器解析 10-26