position: absolute
时,可以像这样居中物品:position: absolute;
top: 50%;
transform: translateY(-50%);
top: 50%
表示元素的顶部距离父元素顶部的距离为父元素高度的50%。
transform: translateY(-50%)
将元素向上移动了元素高度的50%。
这种方法不受元素高度或父元素高度的限制。
您还可以使用它来水平居中:
position: absolute;
left: 50%;
transform: translateX(-50%);
或者垂直和水平同时:
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
top: 50%; margin-top: -10px;
。top: 50%
将白色和灰色三角形定位在方框的中间位置。然后它们会太低 - 它们从50%中点开始,但向下降到50% + 2 *边框宽度。你可以使用CSS3的calc
或CSS3变换来补偿,但最兼容的hack是仅应用等于边框宽度的负上边距。.container:before, .container:after {
content: '';
display: block;
position: absolute;
top: 50%;
right: 100%;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.container:before {
margin-top: -11px;
border-width: 11px;
border-right-color: #dedede;
}
.container:after {
margin-top: -10px;
border-width: 10px;
border-right-color: #fff;
}