【发布时间】:2012-01-17 12:13:31
【问题描述】:
我正在为一家小型律师事务所开发网站。顶部有一个菜单栏,我想与 | 等间距。每个项目之间: Link。 (标题横幅正下方的白条)
这看起来完全正确,但我正在使用表格来完成它。使用 XHTML/CSS 是否有“更正确”的方法?
我的代码如下:
<div id="topMenu" class="spanningMenu">
<table>
<tr>
<td class="topMenuEnd"></td>
<td class="topMenuMiddle"><a href="index.htm">Home</a></td>
<td class="topMenuMiddle">|</td>
<td class="topMenuMiddle"><a href="contact.htm">Contact Us</a></td>
<td class="topMenuMiddle">|</td>
<td class="topMenuMiddle"><a href="directions.htm">Directions</a></td>
<td class="topMenuMiddle">|</td>
<td class="topMenuMiddle"><a href="disclaimer.htm">Disclaimer</a></td>
<td class="topMenuEnd"></td>
</tr>
</table>
</div>
还有 CSS:
.spanningMenu {
border-style: solid;
border-width: 4px 0px;
padding: .2em;
}
#topMenu td.topMenuMiddle {
width: 12.5%;
}
#topMenu td.topMenuEnd {
width: 6.25%;
}
我喜欢我的解决方案,因为它非常健壮,但它肯定在 HTML 中包含布局信息,而我一直在努力避免这种情况。
【问题讨论】:
-
您是否需要一些“动态”的东西(如果您添加更多项目会自行调整),或者您只是想要一种更语义化的方式来在视觉上实现完全相同的东西?
-
ul/ol 和 css 可以很好地做到这一点 - 无论如何对于静态宽度(避免 div 因为这确实是一个 list 结构)。取出边距并使用
display:block-inline,或者,如果您需要支持IE6,请保持原样:P -
@pst:您正在考虑
display: inline-block(供将来参考)。 -
@thirtydot:动态会很棒,但不是必需的。如果我添加另一个项目,我不介意更改一些数字。兼容性将非常重要。这是一家与老年人打交道的律师事务所。
-
@JoshuaD:这需要在 IE6 中工作吗?另外,我认为它必须在 IE7 中工作?