另一个中心元素,而父元素指定position:absolute?

时间:2013-04-10 20:53:28

标签: css position css-position vertical-alignment

我正在使用这个JS小提琴:http://jsfiddle.net/BY3tz/1/

请注意,当您从position CSS类中删除lefttopdotParent属性时,黑点会在框中居中。

我正在寻找一种方法来保持黑点居中(垂直和水平),而保留上面提到的3个属性,以便我可以更改left和{ {1}}属性可将框定位在任何位置,黑点将保持居中。

这可能吗?任何人都可以看到我的top课程出错吗?

3 个答案:

答案 0 :(得分:5)

.dot类的一些调整:

.dot {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50px;
    margin-left: -5px; // Half of the width * (-1)
    margin-top: -5px; // Half of the height * (-1)
    top: 50%;
    left: 50%;
    background: #000;
    -webkit-border-radius: 50px;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

http://jsfiddle.net/BY3tz/2/

答案 1 :(得分:2)

添加了点包装器,因此.dot相对于新的包装器

<div class="dotParent">
    <div class="dot-wrapper">
        <div class="dot"></div>
    </div><!-- end dot-wrapper -->
</div>

新款式。

.dot-wrapper {
    position:relative;
    width:100%;
    height:100%;
}

添加到.dot类

.dot {
    position:absolute;
    top:45%;
    left:45%;
}

http://jsfiddle.net/BY3tz/5/

答案 2 :(得分:1)

将dotParent div中的position属性更改为“Relative”。由于它是父Div,因此需要将其定位为Relative,以便其子项将其作为参考点。

.dotParent {
    position: relative;
    top: 150px;
    left: 50px;
    height: 68px;
    width: 68px;
    border: 1px solid Black;
}

http://jsfiddle.net/BY3tz/6/