如何在另一个div内顶部对齐div

时间:2015-06-29 04:53:03

标签: css css3

enter image description here

您好

我想将div2顶部与div1的边框对齐

到目前为止,我已经为div 2尝试过这个但是效果不好

element.style {
    float: right;
    position: relative;
    vertical-align: top;
}

这没有将div对齐到顶部位置,是什么可以使其顶部对齐?

6 个答案:

答案 0 :(得分:3)

我会像之前所说的那样在孩子身上使用position: absolute;实现这一点,但不是在DOM中添加额外的div来模拟使用空间,我会使用伪元素 (更确切地说,::before pseudo-element)。

这是我用它的结构:

<div class="parent">
    <div class="child">

    </div>
    <h1>Start</h1>
</div>

的div需要为position: relative;,并且子项必须是绝对的,并设置为top: 0;,如以下行所示:

.child {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100px;
    background-color: #000;
}

您需要将此元素设置为固定的高度和宽度,否则将无效。

这种方法的问题是你的div会超过.parent div的前100px。

要解决这个问题,我们需要在.parent div上创建一个伪元素,它将模拟该空间并使一切工作更好:

.parent:before {
    display: block;
    content: ' ';
    width: 100%;
    height: 100px;
}

这是一个带有示例代码的小提琴,希望这可以帮到你!

http://jsfiddle.net/m54rxwjv/2/

PS:这只有在您知道身高始终为100px时才有效。

答案 1 :(得分:2)

给出相对于父div的位置,并将绝对位置设置为内部div。不要忘记设置顶部:内部div为0px,之后你的内部div将始终位于父div的顶部。

#div1{position:relative;}
#div2{position:absolute;top:0px;}

答案 2 :(得分:0)

.div1{
box-sizing: border-box;
  border: 3px solid red;
  height: 150px;     
  width: 30px;
}
.div2{
box-sizing: border-box;
border: 3px solid green;
margin: -3px;
height: 30px;
width: 30px;
}
<div class="div1">
<div class="div2"></div>
</div>

答案 3 :(得分:0)

.div1{
box-sizing:border-box;
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
position:relative;
}

.div2{
box-sizing:border-box;
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
position:relative;
top:0;
left:0;
}

div2始终位于顶部

答案 4 :(得分:0)

根据Vipul的回答,我已经在jsfiddle上创建了针对相同行为的代码:

http://jsfiddle.net/zo6jdp4b/1/

我还在顶部放了一个额外的div,以便在子div css中没有任何问题:

.childDiv{
border: 1px solid blue;
height: 10px;
width: 30px;
position:absolute;
top: 0px;

}

答案 5 :(得分:0)

将顶部div设置为具有粘性的另一个div。 喜欢:

.div2 {
    position: -webkit-sticky;
    position: sticky;
    top: 0px;
}

应将它作为div2放置在div1元素中,例如,您在其中具有溢流y:在设置的高度上滚动(波纹管内容垂直滚动)。