我有一个元素,其位置绝对是我面临的唯一问题是我已经应用了一些属性将它水平对齐并且它在mozilla上工作正常但是相同的属性不适用于chrome 这是我的代码
HTML
<a href="#section1" class="scrollTo downarrow"><img src="images/navbar_downarrow.png" class="img-responsive"/></a>
CSS
.slider{
position: relative;
background-image: url("../images/slider.jpg");
background-size: 100% 100%;
background-repeat: no-repeat;
}
.slider a.downarrow{
position: absolute;
margin-left: auto;
margin-right: auto;
left: 0;
right: 0;
bottom: 20px;
display: table;
}
答案 0 :(得分:30)
中心元素的一个有用技巧是将transform: translate
样式与top
,margin-left
left
或margin-top
一起使用。
要回答您的问题,您必须将以下样式应用于.slider a.downarrow
元素:
left: 50%;
transform: translateX(-50%);
这样做的方法是因为如果translate
与百分比值一起使用,则其值将根据应用它的元素高度/宽度计算。
top
,margin-left
left
和margin-top
百分比值是根据父元素计算的,或者如果元素已基于position: absolute
应用于它最近的父母position: relative/absolute
。
要将元素居中,您只需将50%
的值应用于top
,margin-left
left
或margin-top
,值-50%
1}}到translate
。
对于left
和margin-left
,您必须使用translateX(-50%)
而其他人translateY(-50%)
。
编辑:添加了解释