中心对齐水平位置绝对对象

时间:2017-02-06 13:18:08

标签: css

我有一个元素,其位置绝对是我面临的唯一问题是我已经应用了一些属性将它水平对齐并且它在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;
    }

1 个答案:

答案 0 :(得分:30)

中心元素的一个有用技巧是将transform: translate样式与topmargin-left leftmargin-top一起使用。

要回答您的问题,您必须将以下样式应用于.slider a.downarrow元素:

left: 50%;
transform: translateX(-50%);

这样做的方法是因为如果translate与百分比值一起使用,则其值将根据应用它的元素高度/宽度计算。

topmargin-left leftmargin-top百分比值是根据父元素计算的,或者如果元素已基于position: absolute应用于它最近的父母position: relative/absolute

要将元素居中,您只需将50%的值应用于topmargin-left leftmargin-top,值-50% 1}}到translate

对于leftmargin-left,您必须使用translateX(-50%)而其他人translateY(-50%)

编辑:添加了解释