<div id="main-wrapper">
<div id="fixed-width"> lorem ipsum </div>
<div id="rest-of-space"> dolor sit amet </div>
</div>
CSS:
#main-wrapper {
100%;
background:red;
}
#fixed-width {
width:100px;
float:left
}
#rest-of-space {
margin-left:101px;
/* May have to increase depending on borders and margin of the fixd width div*/
background:blue;
}
7 回答
给第一个div一个浮动左边并固定,第二个div 100%宽度一个浮动左边 . 这应该够了吧 . 如果你想在它下面放置物品,你需要一个明确的:在你想放在下面的物品上
有很多方法可以满足您的需求:
div
的行为类似table
:有更多的方法,但这两个是最受欢迎的 .
CSS3引入了flexible boxes(又名.flex box),它也可以实现这种行为 .
只需定义第一个div的宽度,然后给第二个
flex-grow
值1
,这将允许它填充父级的剩余宽度 .jsFiddle demo
请注意,弹性框不向后兼容旧版浏览器,但它是定位现代浏览器的绝佳选择(另请参阅Caniuse和MDN) . 有关如何使用柔性盒的详尽综合指南,请参见CSS Tricks .
我不是在寻找简单的东西,它会自动适应屏幕(就像我一样)我相信最直接的解决方案是使div在段落中表现为单词 . 尝试指定
display: inline-block
您可能需要也可能不需要指定DIV的宽度
您可以使用CSS网格来实现此目的,这是用于说明目的的长版本:
或者使用float和margin的更传统的方法 .
我在此示例中包含了一个背景颜色,以帮助显示事物的位置 - 以及如何处理浮动区域下方的内容 .
不要将你的风格内嵌在现实生活中,将它们提取到样式表中 .
这将是跨浏览器兼容的 . 如果您的内容比侧边栏长,那么如果没有剩余边距,您将遇到内容一直向左运行的问题 .
如果你没有使用IE6,那么浮动第二个
<div>
并给它一个等于(或者可能略大于)第一个<div>
固定宽度的边距 .HTML:
CSS:
保证金考虑了'rest-of-space'
<div>
可能包含比'fixed-width'<div>
更多内容的可能性 .Don 't give the fixed width one a background; if you need to visibly see these as different ' columns'然后使用Faux Columns技巧 .