天天看点

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

CSS实现元素水平垂直居中对齐

HTML5学堂:前面给大家分享了网易NEC水平垂直居中的做法,但是开发中需要用到各种各样的水平垂直居中来实现,所以今天就给大家分享一下CSS实现水平垂直居中的做法。

第一种方法适用于文字

结构:

HTML5学堂、独行冰海、梦幻雪冰

样式:

.wrap {

width: 400px;

height: 400px;

background: #fcf;

line-height: 400px;

text-align: center;

}

原理:

行高等于高度的时候,文字处于垂直居中,设置了text-align: center的时候,文字处于水平居中;

效果:

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

第二种方法适用于图片

结构:

样式:

.wrap {

width: 400px;

height: 400px;

background: #fcf;

line-height: 400px;

text-align: center;

}

.wrap img {

width: 200px;

height: 200px;

vertical-align: middle;

}

效果:

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

优点:

结构简单,容易实现和理解

缺点:

在IE6浏览器不兼容此方法

那么如何解决在IE6不支持该方法呢,其实很简单,如下:

结构:

样式:

.wrap {

width: 400px;

height: 400px;

background: #fcf;

line-height: 400px;

text-align: center;

}

.wrap img {

width: 200px;

height: 200px;

vertical-align: middle;

}

.wrap span {

display: inline-block;

}

注意:添加了span标签,并且设置display属性设置为inline-block来使我们span标签拥有"layout",这样就解决了在IE6不能兼容的问题.

缺点:

无形中添加了空标签,所以不建议使用

第三种方法利用position和margin进行元素水平垂直居中

结构:

梦幻雪冰

样式:

.wrap {

position: relative;

width: 400px;

height: 400px;

background: #fcf;

}

.box {

position: absolute;

left: 50%;

top: 50%;

width: 200px;

height: 200px;

margin: -100px 0 0 -100px;

background: #999;

}

原理:

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

效果:

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

欢迎沟通交流~HTML5学堂

第四种方法利用position进行元素水平垂直居中

结构:

HTML5学堂

样式:

.wrap {

position: relative;

width: 400px;

height: 400px;

background: #fcf;

}

.box {

position: absolute;

top: 0;

bottom: 0;

right: 0;

left: 0;

width: 200px;

height: 200px;

margin: auto;

background: #999;

}

原理:

设置了绝对定位的话,CSS属性top、bottom、left、right都为0的话,这是不可能的,因为.box的元素有设置宽高,所以你只要在设置一个margin:auto,自然就居中了。

效果:

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

第五种方法利用display:table与table-cell进行元素水平垂直居中

结构:

梦幻雪冰

样式:

.wrap {

display: table;

height: 400px;

width: 400px;

background: #fcf;

}

.box {

display: table-cell;

vertical-align: middle;

}

.con {

width: 200px;

height: 200px;

margin: 0 auto;

background: #999;

}

效果:

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

优点:

这种方法不会像前面的两种方法一样,有高度的限制,此方法可以要据元素内容动态的改变高度,从而也就没有空间的限制,元素的内容不会因为没足够的空间而被切断或者出现难看的滚动条。

缺点:

不足之处呢?这种方法只适合现代浏览器,在IE6-7下无法正常运行。

那么如何解决兼容IE6、IE7呢?

结构:

梦幻雪冰

样式:

.wrap {

position: relative;

display: table;

height: 400px;

width: 400px;

background: #fcf;

}

.box {

display: table-cell;

vertical-align: middle;

*position: absolute;

*top: 50%;

*left: 50%;

}

.out {

*position:relative;

*top: -50%;

*left: -50%;

}

.con {

width: 200px;

height: 200px;

margin: 0 auto;

background: #999;

}

第六种方法利用display:table-cell进行元素水平垂直居中

结构:

梦幻雪冰

样式:

.wrap {

display: table-cell;

width: 400px;

height: 400px;

background: #fcf;

vertical-align: middle;

}

.box {

width: 200px;

height: 200px;

margin: 0 auto;

background: #999;

}

效果:

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

优点:

这种方法的优点和方法三是一样的,不会有高度的限制。

缺点:

IE6、IE7不支持

第七种方法元素(空标签)水平垂直居中

结构:

独行冰海、梦幻雪冰

样式:

html,

body {

height: 100%;

}

.box {

position: relative;

clear:both;

height: 300px;

width: 300px;

margin: 0 auto;

background: #999;

}

.floater {

float:left;

height:50%;

margin-bottom: -150px;

background: #fcf;

}

效果

html5 文字居中原理,CSS如何实现元素水平垂直居中 - 水平垂直居中对齐方法集锦...

相关文章推荐

欢迎沟通交流~HTML5学堂