CSS 布局中,我们可以设置元素的水平和垂直对齐方式,例如垂直和水平居中对齐文本或水平居中图像
设置元素的水平和垂直对齐方式有以下几种:
使用 margin 属性水平居中某个元素
范例
块 ( block ) 元素会独占一行,同时还可以指定其宽度和高度
为了使块元素水平居中,首先指定元素的宽度,以防止元素溢出父容器,然后将 margin-left 和margin-right 属性值设置为 auto,以便元素的两边的边距是相等的
例如上面的范例的源代码如下
.center { margin-left: auto; margin-right: auto; width: 50%; border: 3px solid green; padding: 10px; }
注意: 如果元素的宽度是 100%,那么它将无法居中,其实已经是居中的,100% 边距为 0 不就是居中么?
注意:在早期的 IE8 或更早的浏览器中,需要设置 <!DOCTYPE> 才能是元素居中
使用 text-align 属性居中文本或图像
我们可以使用 text-align 属性设置文本或图像左对齐、居中对齐、右对齐元素,就像下面这样
.left { text-align: left; border: 3px solid green; } .right { text-align: right; border: 3px solid green; } .center { text-align: center; border: 3px solid green; }
如果使用 display:block 属性将图像设置为块级别,那么再使用 text-align 属性设置是无效的,这种情况下,我们只能将图像放置在另一个块级别的元素中,然后设置该元素的 margin-left 和 margin-right 属性为 auto 才能达到居中的目的
img { display: block; margin: 0 auto; width: 50%; }
使用 padding 属性垂直居中
有多种方法可以让一个元素垂直居中,最简单的方式是设置该元素的父元素的 padding 属性,例如
.center { padding: 80px 0; border: 3px solid green; }
如果想要一个元素水平居中和垂直居中,那么可以同时设置父元素的 text-align 和 padding 属性
.center { padding: 80px 0; border: 3px solid green; text-align: center; }
使用 line-height 属性垂直居中
除了使用 padding 属性垂直居中外,还可以使用 line-height 属性来垂直居中某个元素
.center { line-height: 200px; height: 200px; border: 3px solid green; text-align: center; } /* 如果文本跨越多行,可以添加以下属性来垂直居中 */ .center p { line-height: 1.5; display: inline-block; vertical-align: middle; }
在这种情况下,我们必须设置 height 属性,且 height 属性的值必须和 line-height 相等或者大于或小于 1px