好的,我在一两个星期前遇到了一个简单的布局问题。即页面的各个部分需要一个标题:
+---------------------------------------------------------+ | Title Button | +---------------------------------------------------------+
很简单的东西。在网络世界中,表仇恨似乎已经接管了一切,当我问[为什么对HTML表单而不是表使用定义列表(DL,DD,DT)标签]时,我想起了这件事。现在,前面已经讨论了表vsdivs / CSS的一般主题
因此,这并不是要对CSS与布局表进行一般性讨论。这只是解决一个问题的方法。我使用CSS尝试了上述各种解决方案,包括:
这些解决方案均因不同原因而不能令人满意。例如,相对位置导致z-index问题,其中我的下拉菜单出现在内容下方。
所以我最后回到了:
<style type="text/css"> .group-header { background-color: yellow; width: 100%; } .group-header td { padding: 8px; } .group-title { text-align: left; font-weight: bold; } .group-buttons { text-align: right; } </style> <table class="group-header"> <tr> <td class="group-title">Title</td> <td class="group-buttons"><input type="button" name="Button"></td> </tr> </table>
而且效果很好。这很简单,因为它具有向后兼容性(即使在IE5上也可以使用),并且可以正常工作。不要乱搞定位或浮动。
因此,没有表,谁能做到这一点?
要求是:
编辑: 让我详细说明浮动问题。这类作品:
<html> <head> <title>Layout</title> <style type="text/css"> .group-header, .group-content { width: 500px; margin: 0 auto; } .group-header { border: 1px solid red; background: yellow; overflow: hidden; } .group-content { border: 1px solid black; background: #DDD; } .group-title { float: left; padding: 8px; } .group-buttons { float: right; padding: 8px; } </style> </head> <body> <div class="group-header"> <div class="group-title">This is my title</div> <div class="group-buttons"><input type="button" value="Collapse"></div> </div> <div class="group-content"> <p>And it works perfectly. It's simple, as backward compatibile as it gets (that'll work probably even on IE5) and it just works. No messing about with positioning or floats.</p> <p>So can anyone do the equivalent without tables that is backwards compatible to at least FF2 and IE6?</p> <p>On a side note, I came across a couple of interesting articles today:</p> </div> </body> </html>
多亏了Ant P的帮助overflow:hidden(尽管还是不明白为什么)。这就是问题所在。例如,我希望标题和按钮垂直居中。这是有问题的,因为元件具有不同的高度。比较一下:
overflow:hidden
<html> <head> <title>Layout</title> <style type="text/css"> .group-header, .group-content { width: 500px; margin: 0 auto; } .group-header { border: 1px solid red; background: yellow; overflow: hidden; } .group-content { border: 1px solid black; background: #DDD; } .group-header td { vertical-align: middle; } .group-title { padding: 8px; } .group-buttons { text-align: right; } </style> </head> <body> <table class="group-header"> <tr> <td class="group-title">This is my title</td> <td class="group-buttons"><input type="button" value="Collapse"></td> </tr> </table> <div class="group-content"> <p>And it works perfectly. It's simple, as backward compatibile as it gets (that'll work probably even on IE5) and it just works. No messing about with positioning or floats.</p> <p>So can anyone do the equivalent without tables that is backwards compatible to at least FF2 and IE6?</p> <p>On a side note, I came across a couple of interesting articles today:</p> </div> </body> </html>
完美地运作。
使用可用的工具快速正确地完成工作没有任何问题。
在这种情况下,一张桌子工作完美。
我个人会为此使用一张桌子。
我认为应避免使用嵌套表,否则可能会导致混乱。