css居中的几种方式
css居中的几种方式
居中分水平和垂直两种,使用的频度也算是很高,下面分情况来讨论一下几种常用的实现方式。
1.margin
这种方式只能实现固定宽度的块级元素水平居中,如果该元素没有设置宽度或者不是块级元素,则不会生效。
1 | /*以div元素为例*/ |
2.line-height
将单行文字line-height
值设置为其父元素高度可以实现该行文字的垂直居中,局限也很明显。
1 | <div id='container'> |
3.表格
如果你使用表格的话,那么可以利用td
元素的align:center
和valign:middle
属性轻易的做到水平和垂直居中,但是考虑到现在表格布局的使用频率已经很低了,实用性其实并不强。
1 | <table> |
4.display: table-cell
由于单元格可以轻易的实现水平和垂直居中,所以可以把父元素容器模拟成单元格元素,通过样式text-align:center
以及vertical-align:middle
来达到一样的效果。但是要注意的是text-align:center
只能使非块级子元素水平居中而对块级子元素无效。
1 | <div id="table-cel"> |
5.绝对定位居中
这个方法使用的相对也较多,但是需要子元素有固定的宽高,不多说直接上代码。
1 | <body> |
6.translate(-50%, -50%)
这个方法比较厉害了,其实可以算是前面绝对定位方法的改良版。之前的方法只能使固定宽高的元素居中,但是使用transform: translate(-50%, -50%);
可以使不固定高宽的元素达到居中的效果。因为translate
属性的百分比值是根据它本身而非父元素,下面看代码:
1 | <div id="father"> |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 wjnba的博客!
评论