我想创建一个网页布局,其中侧边栏位于右侧,主要内容位于侧边栏。右侧浮动侧边栏主要内容流动 - 如何?
要求:侧边栏下方
- 内容应占据所有可用的宽度
- 当它击中边栏的
- 主要内容应先左侧边栏中下面的内容应该不换标记中的边栏
- 边栏具有固定宽度但未知/可变高度
- 仅限CSS - 无JavaScript解决方案纳秒
这可以在没有第三个要求来实现:如果边栏是在标记的主要内容之前和是相同的含元素中,一个简单的右浮动做这项工作。标记中的主要内容之前的侧栏不是此处的选项。侧边栏将包含补充信息和广告。如果这是标记中的主要内容之前,那么对于无CSSless浏览器和屏幕阅读器用户(即使使用“跳转到...”链接)也会很烦人。
这可以在没有第四个要求的情况下实现。如果侧边栏有一个固定的高度,我可以在主要内容之前放置一个容纳元素,将其右侧浮动并给予合适的宽度和高度,然后使用绝对定位将侧边栏放置在预制空间的顶部。
示例标记(不包括CSS,只有相关的位):
<body>
<div id="content">
<p>
Lorem ipsum ....
</p>
<p>
Pellentesque ....
</p>
<div id="sidebar">
/* has some form of fixed width */
</div>
</div>
</body>
布局例:
alt text http://webignition.net/images/layoutexample.png
我不知道这是可能的。我很高兴接受一个权威性的回答,说明这是无法实现的。如果这不能实现,我会很感激一个解释 - 知道为什么它不能实现比仅仅被告知它不能实现更有价值。
更新:我很高兴看到不符合所有五项要求的答案,只要答案指出哪些要求被忽略,以及忽略忽略要求的后果(利弊)。然后我可以做出明智的妥协。
更新2:我不能忽略要求3 - 侧边栏不能在内容之前。
[jsfiddle](http://jsfiddle.net/Matte_000/sdo2x966/) – Matmarbon 2014-08-08 08:38:06