将div放在“绝对”<div>的底部

时间:2016-03-29 17:34:49

标签: html css position absolute

我在安排我的div时遇到了麻烦。我希望将child div粘贴到parent div的底部,grandchild_1grandchild_2保持正确放置。我的意思是在grandchild_1之前grandchild_2,就像在图片上一样。

这是我尝试过的,但是“孩子”这个部分坚持到顶部:

#parent {
   position: relative;
}

#child {
   position: absolute; bottom: 0;
}



<div id="parent">
    <div id="child">
        <div id="grandchild_1">
        </div>
        <div id="grandchild_2">
        </div>
    </div>
</div>

enter image description here

任何人都知道我该怎么办?谢谢!

2 个答案:

答案 0 :(得分:0)

如果你在父母身上指定一个高度,它会粘在底部。

示例:http://codepen.io/anon/pen/wGqzVd

HTML

<div id="parent">
  Parent
  <div id="child">
    Child
    <div id="grandchild_1">
      Grandchild 1
    </div>
    <div id="grandchild_2">
      Grandchild 2
    </div>
  </div>
</div>

CSS

div {
  padding: 5px;
}

#parent {
  position: relative;
  background: lightgray;
  height: 200px;
  width: 150px;
}

#child {
  position: absolute;
  bottom: 5px;
  background: yellow;
}

#grandchild_1 {
  background: pink;
}

#grandchild_2 {
  background: lightblue;
}

答案 1 :(得分:0)

提供的代码按原样运行...假设父级的高度大于子级的高度。

&#13;
&#13;
#parent {
  position: relative;
  height: 200px;
  background: pink;
}
#child {
  position: absolute;
  width: 100%;
  bottom: 0;
  background: green;
}
#grandchild_1,
#grandchild_2 {
  height: 25px;
  background: red;
  margin: 10px;
}
&#13;
<div id="parent">
  <div id="child">
    <div id="grandchild_1">GC1
    </div>
    <div id="grandchild_2">GC2
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

作为定位的替代方法,flexbox可以做同样的事情...... 并且孩子将影响父母的高度,绝对定位的孩子不能

&#13;
&#13;
#parent {
  position: relative;
  height: 200px;
  background: pink;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
#child {
  width: 100%;
  background: green;
}
#grandchild_1,
#grandchild_2 {
  height: 25px;
  background: red;
  margin: 10px;
}
&#13;
<div id="parent">
  <div id="child">
    <div id="grandchild_1">GC1
    </div>
    <div id="grandchild_2">GC2
    </div>
  </div>
</div>
&#13;
&#13;
&#13;