通常情况下设置元素的文本、图片等行内元素水平居中,通过给父元素设置text-align:center 实现。


这里div就是文本的父元素。
给固定宽度的元素设置水平居中:


图中的灰色div就就是固定宽被水平居中了。
给不定宽度的元素设置水平居中:
这里有三种方法:
第一种:通过给父元素设置float,然后给父元素设置position:relative和left:50%,子元素设置position:relative和left:-50%来实现水平居中。(经测试这种方法好像没有下面介绍的两种方法准确)



第二种方法:改变块级元素的display为inline类型(设置为行内元素显示),然后使用text-align:center来实现居中效果。
html标签还是那些标签知识css更改了。


第三种:加入table标签,利用table标签的长度自适应性---即不定义其长度也不默认父元素body的长度(table其长度根据其内文本长度决定),因此可以看做一个定宽度块元素,然后再利用定宽度块状居中的margin的方法,使其水平居中。



下面说垂直居中:
第一种情况:如果一个容器中只有一行文字,对它实现垂直居中,只需要设置它的实际高度height和所在行的高度line-height相等即可。


这段代码很简单,后面使用overflow:hidden的设置是为了防止内容超出容器或者产生自动换行,这样就达不到垂直居中效果了。
第二种情况:多行未知高度文字的垂直居中:
就是设定Padding,使上下的padding值相同即可。同样的,这也是一种“看起来”的垂直居中方式,它只不过是使文字把<div>完全填充的一种方式而已。


第三种情况:多行文本固定高度的居中
通过vertical-align属性,但这个属性不是所有元素都有,所以再通过display属性能够模拟<table>标签。还有需要注意的是:display:table和display:table-cell的使用方法,前者必须设置在父元素上,后者必须设置在子元素上,因此要为需要定位的文本再增加一个<div>元素



网友评论