CSS 对齐样式
在CSS对元素的样式设定中,可以通过设置不同的元素属性来实现对齐的效果。例如文本对齐可以使用text-align,div对齐则可以使用margin属性设置等。
我们常常用到的是水平对齐和居中对齐。
居中对齐样式
要使块元素(例如 <div> )水平居中,可以使用 margin: auto
来设置。
设置元素的宽度将防止其延伸到容器的边缘。
然后,元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配:
示例:
.center {
margin: auto;
width: 50%;
border: 3px solid green;
padding: 15px;
}
注意: 假如未设置 width 属性(或者设置为 100%),则元素的居中对齐将不起作用。
文本居中对齐样式
假如仅需在元素内居中对齐文本,可以使用 text-align: center;来设置。
示例:
.center {
text-align: center;
border: 3px solid green;
}
图像居中对齐样式
假如需要居中对齐图像,可以将图像的左右外边距设置为 auto,并将其设置为块元素:
示例:
img {
display: block;
margin-left: auto;
margin-right: auto;
width: 40%;
}
左对齐和右对齐样式
让元素实现左对齐和有对齐样式,可以通过position以及float等css属性设置方式来实现。
使用 position
对齐元素的一种方法是使用 position: absolute;
示例:
.right {
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 20px;
}
注意:绝对定位的元素将从正常流中删除,并可能出现元素重叠。
使用 float
对齐元素的另一种方法是使用 float 属性:
示例:
.right {
float: right;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
注意:假如一个元素比包含它的元素高,而且它是浮动的,它会溢出其容器。你可以使用 clearfix hack
来解决此问题(请看下面的例子)。
clearfix Hack
然后我们可以向包含元素添加 overflow: auto;来解决此问题:
示例:
clearfix {
overflow: auto;
}
垂直对齐样式
CSS 中有很多方式可以实现垂直居中对齐。 一个简单的方式就是头部顶部使用 padding,另一个就是使用line-height实现。
使用 padding
我是垂直居中。
示例:
.center {
padding: 70px 0;
border: 3px solid green;
text-align: center;
}
使用 line-height
使用line-height的关键是使用其值等于 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;
}
使用 position 和 transform
这是第三种方式,这种解决方案是使用 position
和 transform
属性:
示例:
center {
height: 200px;
position: relative;
border: 3px solid green;
}
.center p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
提示:有关 transform 属性的更多知识,你可以在 2D 转换 教程中学习。
垂直对齐 – 使用 Flexbox
第四种方式,你还可以使用 flexbox 将内容居中。需要注意,其中IE10 以及更早的版本不支持 flexbox:
示例:
.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
border: 3px solid green;
}
**提示:更多关于 Flexbox 的知识,你可以在CSS Flexbox 这一章中学到。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/59542.html