我想在同一行上使用float: left表示左边的项。
我一个人做到这一点没有问题。问题是,我希望这两个项目保持在同一行,即使您将浏览器调整到非常小。你知道的…就像桌子一样。
这样做的目的是让右边的物品无论如何都不会被包装。
我如何使用CSS告诉浏览器,我宁愿拉伸包含的div而不是包装它,所以float:右;Div在float的下面:left;div吗?
我想要的是:
\
+---------------+ +------------------------/
| float: left; | | float: right; \
| | | /
| | |content stretching \ Screen Edge
| | |the div off the screen / <---
+---------------+ +------------------------\
/
另一个选择是,不使用浮动,而是将空白属性nowrap设置为父div:
.parent {
white-space: nowrap;
}
并重置空白和使用内联块显示,这样div保持在同一行,但你仍然可以给它一个宽度。
.child {
display:inline-block;
width:300px;
white-space: normal;
}
这是一个JSFiddle: https://jsfiddle.net/9g8ud31o/
我解决这个问题的方法是使用一些jQuery。我这样做的原因是因为A和B是宽度的百分比。
HTML:
<div class="floatNoWrap">
<div id="A" style="float: left;">
Content A
</div>
<div id="B" style="float: left;">
Content B
</div>
<div style="clear: both;"></div>
</div>
CSS:
.floatNoWrap
{
width: 100%;
height: 100%;
}
jQuery:
$("[class~='floatNoWrap']").each(function () {
$(this).css("width", $(this).outerWidth());
});
包装你的浮动<div>s在容器<div>,使用这个跨浏览器的最小宽度hack:
.minwidth { min-width:100px; width: auto !important; width: 100px; }
您可能还需要设置“overflow”,但也可能不需要。
这很有效,因为:
important声明和min-width结合在一起,使得在IE7+中所有内容都保持在同一行
IE6没有实现min-width,但它有一个bug, width: 100px会覆盖!important声明,导致容器宽度为100px。