我希望能够将div浮动到容器的底部。我使用绝对定位来实现这一目标:
#outer {
background: lightblue;
min-height: 100px;
padding: 20px;
position: relative;
}
#inner {
background: red;
position: absolute;
bottom: 20px;
}

<div id=outer>
<div id=inner>BLAH BLAH</div>
</div>
&#13;
在上面,为了使定位尊重外部容器底部的边框,我必须用20px
重复bottom: 20px
填充。我的问题是,这违反了DRY原则 - 当我改变其中一个数字时,我不希望这一点破裂。
尊重填充的示例是float
。如果我float
向左或向右,它只会浮动到填充。
我怀疑我可以使用带有变量的预处理器(比如LESS?) - 但不包括它,有没有办法做到这一点?
答案 0 :(得分:2)
嗯,当然是flexbox,但我不确定这是多么可扩展。
#outer {
background: lightblue;
min-height: 100px;
padding: 20px;
display: flex;
}
#inner {
background: red;
align-self: flex-end;
}
&#13;
<div id=outer>
<div id=inner>BLAH BLAH</div>
</div>
&#13;
答案 1 :(得分:1)
使用边距而不是填充?
#outer {
background: lightblue;
min-height: 100px;
margin: 20px;
position: relative;
}
#inner {
background: red;
position: absolute;
bottom: 0px;
}
&#13;
<div id=outer>
<div id=inner>BLAH BLAH</div>
</div>
&#13;
答案 2 :(得分:0)
只需使用css&#34; bottom: 0;
&#34;在子元素中。
答案 3 :(得分:0)
我决定在采用div
属性的#inner
div之前选择另一个min-height
:
#outer {
background: lightblue;
padding: 20px;
}
#beforeinner {
min-height: 100px;
}
#inner {
background: red;
}
&#13;
<div id=outer>
<div id=beforeinner></div>
<div id=inner>BLAH BLAH</div>
</div>
&#13;