防止导航子菜单 (UL) 的行为像浮动一样?



我构建了一个nav,其中我有一个由一组较小的无序列表组成的无序列表。这些要素被归类为"次国家一级"。

当在较小的屏幕上查看导航时,导航会"折叠",菜单会堆叠在一起。我希望导航保持"完整性",而不会在屏幕变化时改变形状。

这是一个jsfiddle:http://jsfiddle.net/Cyc4n/

如果你在jsfiddle中调整窗口的大小,你可以看到菜单在跳舞——我该如何保持它的静止和完整?

任何方向都非常欣赏

您可以使用.navigation{min-width:900px;}来确保您的导航宽度至少为900px。这将防止浮动行为。请注意,实际金额取决于字体大小、边框/填充/边距值和浏览器特定的边距(如果您没有重置它们)。如果您使用的是相对值(例如em),那么也可以尝试在min-width:...中使用em

您可以将display: table-cell;用于.subnav,将display: table;用于其父级.navigation(或者更好的table-row用于其父级,将table用于后者的父级,但它已经这样工作了;)
这是一把小提琴:http://jsfiddle.net/Cyc4n/1/

编辑:在我的例子中,我添加了table-layout: fixed和徽标右侧的一个大填充。如果你想精确控制你的物品,它就在那里作为例子。如果你想让浏览器尽最大努力管理项目的宽度,请随时删除这两个选项。

您也可以使用CSS3 Flexible Box Layout,但它的支持比CSS2 display: table;差!尽管如果你专门针对媒体查询的"移动"(窄屏幕)应该没问题:支持媒体查询的浏览器也应该支持Flexbox(这是桌面优先的响应式设计,而不是移动优先)
EDIT2:对display: table*;的支持是IE8+。您已经有了IE7的后备方案-使用inline-block;)

相关内容

最新更新