展开div来获取剩余宽度
我想要一个双列div布局,其中每个布局都可以具有可变宽度,例如
div {
float: left;
}
.second {
background: #ccc;
}
<div>Tree</div>
<div class="second">View</div>
解决这个问题其实很简单,但并不明显。 你必须触发一个被称为“块格式化上下文”(BFC)的东西,它以特定的方式与浮点数进行交互。
只需要第二个div,删除浮动,并给它overflow:hidden
。 除可见性以外的任何溢出值都会使其设置的块成为BFC。 BFC不允许后代浮游物逃离它们,也不允许兄弟/祖先浮游物闯入它们。 这里的净效果是浮动的div会做的事情,然后第二个div将是一个普通的块,占用所有可用的宽度,除了浮动所占用的宽度。
这应该适用于所有当前的浏览器,尽管您可能必须在IE6和7中触发hasLayout。我不记得了。
演示:
我刚刚发现了柔性盒的魔力(display:flex)。 尝试这个:
<style>
#box {
display: flex;
float: left;
}
#b {
flex-grow: 100;
border: 1px solid green;
}
</style>
<div id='box'>
<div id='a'>Tree</div>
<div id='b'>View</div>
</div>
Flex盒子给了我希望css拥有15年的控制权。 它终于来了! 更多信息:https://css-tricks.com/snippets/css/a-guide-to-flexbox/
这将是一个很好的例子,用于处理表格并且很难做到(如果不是不可能,至少在跨浏览器的意义上)处理CSS。
如果两列的宽度都是固定的,这很容易。
如果其中一列的宽度是固定的,这将会稍微困难一些,但完全可行。
对于两列可变宽度,恕我直言,你只需要使用一个双列表。
链接地址: http://www.djcxy.com/p/27427.html上一篇: Expand a div to take the remaining width
下一篇: Cancel transition of child element on hover of parent element?