【发布时间】:2010-10-03 22:39:13
【问题描述】:
所以,我已经“收集”CSS 菜单有一段时间了(另一个术语是“借用”,另一个术语是“公然抄袭”),以向它们学习并可能重用其中的一些细节在我自己的项目中。
作为一个老式的 HTML 纯粹主义者,我喜欢样式化 <ul>s 和 <ol>s 的想法,更好的菜单和选项卡界面倾向于使用这种方法,以实现可访问性或语义健全性或其他原因。我主要喜欢这种方法,因为它使我的 HTML 源代码保持整洁。
现在,我实际上重构了我的 CSS 菜单集合,以适应一种“主”标记模式,我从最灵活的示例中推断出来,例如 CSS Zen Garden。它看起来像这样:
<div class="menustyle">
<ul>
<li class="current"><a href="#" title="Page 1"><span>Home</span></a></li>
<li><a href="#" title="Page 2"><span>Toys</span></a></li>
<li><a href="#" title="Page 3"><span>About Us</span></a></li>
<li><a href="#" title="Page 4"><span>Contact</span></a></li>
</ul>
</div>
<span class="clearit" /><br />
(末尾的'clearit'跨度用于在需要它的菜单之后设置clear:both)
无论如何,我已经在许多网站上看到了此标记的变体,有些带有额外的封闭 <div>,有些使用与 current 不同的词,有些将 current 类附加到 <a> 标签而不是比<li>,还有一些省略了内部<span>。每个人似乎都有自己的菜单标记方式,只是略有不同。
无论如何,在修改了很多个菜单之后,以上是我想出的,但我想弄清楚是否有一个实际建立的最佳实践。我想在某个时候建立一个简单的 CSS 菜单代工厂,在继续之前获得一些关于标记的输入会很好。
编辑:问题是不是关于 Javascript 菜单的。我知道那里有出色的脚本菜单,它们允许您拥有子菜单、更高级的动画和悬停时间、快捷键、阴影和其他一切。但是 90% 的菜单不需要这些功能,使用 CSS 来设置样式和悬停效果会更好。
【问题讨论】:
-
还有一个给 Stack Overflow 设计者的额外问题:为什么不使用样式列表方法来制作标签?我只是试了一下,它们并不难复制。