我想显示一个具有经典设计的 html 页面。页眉、页脚、内容和右侧的栏。
出于某种原因,我不喜欢内容的固定宽度。在宽屏幕上,您应该能够调整页面大小,使其填满屏幕,或者使其非常小以并排显示两个页面。
我也想使用 div 标签而不是表格布局。使用 div 标签给了我以下优势(有人告诉我):
- 可以在等待“右”栏时呈现内容
- 在手机上,Div 标签可以在彼此下方显示,而不是并排显示。
我的测试/调试 html 如下所示:
<!-- Create content with DIV tags -->
<div id="head" style="background-color:aqua">This is the header</div>
<div id="body" style="float:left;">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sodales sagittis sem, at bibendum nunc aliquet non. Maecenas condimentum, libero pharetra suscipit sodales, dui diam laoreet velit, at lacinia nisl erat sed turpis. Quisque lobortis consequat elementum. Suspendisse non interdum est. In velit felis, rhoncus tincidunt tincidunt sit amet, laoreet eu ligula. Nulla facilisi. Sed ornare facilisis pulvinar. Integer viverra arcu eu turpis dictum vitae tincidunt magna scelerisque. Nunc laoreet pulvinar odio, quis rutrum libero consectetur non. Donec molestie, felis volutpat condimentum iaculis, orci arcu feugiat sapien, accumsan scelerisque sapien orci sed urna. Curabitur et turpis sit amet diam vulputate egestas. </p>
</div>
<div id="right" style="background-color:orange; float:right; width:10em;">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
<div id="tail" style="background-color:lime;clear:both;">This is the Footer</div>
<p> </p>
<!-- Create content with TABLE tag -->
<div id="t-head" style="background-color:aqua">This is the header</div>
<table cellpadding="0" cellspacing="0">
<tr><td>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sodales sagittis sem, at bibendum nunc aliquet non. Maecenas condimentum, libero pharetra suscipit sodales, dui diam laoreet velit, at lacinia nisl erat sed turpis. Quisque lobortis consequat elementum. Suspendisse non interdum est. In velit felis, rhoncus tincidunt tincidunt sit amet, laoreet eu ligula. Nulla facilisi. Sed ornare facilisis pulvinar. Integer viverra arcu eu turpis dictum vitae tincidunt magna scelerisque. Nunc laoreet pulvinar odio, quis rutrum libero consectetur non. Donec molestie, felis volutpat condimentum iaculis, orci arcu feugiat sapien, accumsan scelerisque sapien orci sed urna. Curabitur et turpis sit amet diam vulputate egestas. </p>
</td><td valign="top" style="background-color:orange; width:10em;">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</td></tr>
</table>
<div id="t-tail" style="background-color:lime;clear:both;">This is the Footer</div>
这段代码的输出在这里:
(来源:vantslot.be)
(文字无所谓,只有布局,所以我把它缩小了一点)。
顶部布局使用 div:错误
底部布局使用表格:好
我的问题/问题
如何将“右”栏定位在内容的右侧,同时保持内容的动态宽度,而不使用表格布局?
我真正想要的是右窗格出现在内容的右侧,但是当浏览器太小(< 20em)时,它可以显示在它下面。这对于表格是不可能的,所以我更喜欢 div 解决方案。
在最终的网站中,页眉/页脚/内容和右侧的内容将动态生成,因此我无法对高度进行硬编码。
编辑
谢谢所有的答案,这真的帮助我前进。
我看到这里有什么“错误”。我将右窗格放在内容窗格之后。如果我将右窗格放在内容窗格之前,它会正确呈现(在向内容添加边距后)。
这对于 html 的流程来说有点不合逻辑。由于内容比右窗格中的内容更重要,我希望它在右窗格之前发送给客户端。