将div定位到不同div的底部,而不使用Absolute

时间:2014-09-30 15:43:03

标签: html css image css-float relative

我在另一个div中有一个div。内部div的边距为0,自动集中它。但是,我不能让它浮动到底部而不是绝对的。无论如何将相对div浮动到普通div的底部?

6 个答案:

答案 0 :(得分:15)

不使用position: absolute,您必须垂直对齐它。

根据the docs

,您可以使用vertical-align: bottom
  

vertical-align CSS属性指定内联或表格单元格框的垂直对齐方式。

因此,要么将外部div设置为内联元素,要么将其设置为table-cell

#outer {
  height: 200px;
  width: 200px;
  border: 1px solid red;
  display: table-cell;
  vertical-align: bottom;
}

#inner {
  border: 1px solid green;
  height: 50px;
}
<div id="outer">
  <div id="inner">
  </div>
</div>

答案 1 :(得分:5)

现在您只需使用display: flex来解决所有这些对齐问题。

在您的情况下,您可以简单地使父项为flex,flex-direction column(默认为行)和justify-content: flex-end。这种方法的优点是,如果父项中有多个项目,它也可以使用。

如果您有多个,并希望从父项的开头到结尾都对齐,您可以将justify-content更改为其他属性,例如space-betweenspace-evenly

&#13;
&#13;
#outer {
  height: 200px;
  width: 200px;
  border: 1px solid red;
  display: flex;
  justify-content: flex-end;
  flex-direction: column;
}

#inner {
  border: 1px solid green;
  height: 50px;
}
&#13;
<div id="outer">
  <div id="inner">
  </div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

将此样式添加到内部div。

position: relative;
top: 100%;
transform: translateY(-100%);

答案 3 :(得分:0)

除非你的内容是静态高度,否则我发现的唯一方法是使用jquery这样做:

$(document).ready(function(){
  inner_height = $('#inner-div').height();
  outer_height = $('#outer-div').height();
  margin_calc = (outer_height - inner_height)
  $('#inner-div').css('margin-top', (margin_calc+'px'));
});

如果另一列的高度较大,这将适用于contains-div中的column-div。

令人难以置信的是,这个简单的事情不是通过css-property(即“float:bottom”)“内置”,不会以绝对等方式破坏其他所有内容。

答案 4 :(得分:0)

看到这个

.container {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

CSS positioning at the bottom without absolute positioning

答案 5 :(得分:-2)

您可以通过将最高值设置为100%来完成此操作。

HTML

<div class="outer">
<div class="inner"></div>
</div>

CSS

.outer {height:400px;width:400px;background:#eaeaea;}
.inner {position:relative;top:100%;height:50px; width:50px; background:#fad400;}

在这里查看这个小提琴:http://jsfiddle.net/62wqufgk/