【发布时间】:2012-10-29 02:55:05
【问题描述】:
当使用标准的<nav> & <ul> 时,很容易创建出现在单行上的导航:
桌面:http://jsfiddle.net/Baumr/Be9ma/1/
由于这是用于响应式布局,因此在较小的显示器上,导航将收缩为 3 列(甚至可能是 2 列),并带有媒体查询(代码中未包含):
手机:http://jsfiddle.net/Baumr/Be9ma/
但在美学上没有间隔:
由于nav li 元素的宽度为 33.3333%,因此间距被弄乱了——有些导航项很长,有些则很短。但间距不是流动的。
如何将每列调整为仅与最宽的元素 + 填充/边距一样宽?也就是说,不分离或嵌套 ul,这会破坏语义,并且在宽屏上观看时。
这是简单的 HTML:
<nav>
<ul>
<li>Home</li>
<li>Very Long Link</li>
<li>Blog</li>
<li>About</li>
<li>Also Long Link</li>
<li>Email</li>
</ul>
</nav>
这里是相关的 CSS:
nav {
clear: both;
background: pink;
}
nav ul {
padding: 20px 10px 0 30px;
margin: 0;
overflow: hidden;
font-size: 16px;
}
nav li {
font-variant: small-caps;
text-decoration: underline;
list-style: none;
display: block;
float: left;
padding: 0 0 30px 0;
margin: 0;
width: 33.33333%;
float: left;
}
很想听听您的想法。提前谢谢!
附:我想强调跨浏览器兼容性和语义。
【问题讨论】:
-
使用基于百分比的填充或边距?不完全确定您要做什么。
标签: html css responsive-design fluid-layout multiple-columns