【发布时间】:2014-09-23 12:28:37
【问题描述】:
这是我的挣扎。所以我一直想知道如何让导航栏链接填充 100% 的导航。这样它们就有相同的间距,并且如果添加更多链接,字体大小会减小 - 这样它总是会填充 100%。
就目前而言,我似乎无法做到这一点。我只有一组填充,但我尝试过做类似的事情:
display: block;
float: left;
width: 100%;
但它给了我各种根本不起作用的效果:S
谁能帮我解决这个问题?
【问题讨论】:
这是我的挣扎。所以我一直想知道如何让导航栏链接填充 100% 的导航。这样它们就有相同的间距,并且如果添加更多链接,字体大小会减小 - 这样它总是会填充 100%。
就目前而言,我似乎无法做到这一点。我只有一组填充,但我尝试过做类似的事情:
display: block;
float: left;
width: 100%;
但它给了我各种根本不起作用的效果:S
谁能帮我解决这个问题?
【问题讨论】:
从#main-navigation 中删除宽度,并将with 添加到#main-navigation li,其值等于100/the_numberof_elements_in_the 列表。你的 CSS 应该是:
#main-navigation {
height: 54px;
overflow: hidden;
border-bottom: 1px solid black;
}
#main-navigation ul {
height: 54px;
overflow: hidden;
}
#main-navigation li {
font-size: 1.0em;
text-transform: uppercase;
list-style: none;
float: left;
width: 20%;
}
这样您的导航将占据所有可用宽度,但您的字体大小不会自动调整大小。您还应该根据元素的数量来更改它(类似于您对 li 宽度所做的方式)。如果您在服务器端动态生成此列表,您可以对 css 执行相同操作,然后计算这两个属性的正确值。如果您使用 ajax 填充列表,则可以使用 javascript 更改属性。
【讨论】:
一种方法是在父级上使用display: table,在子级上使用display:table-cell。我相信它不适用于某些版本的 IE(当然)。 Here's 一个例子
【讨论】:
您可以改用nav 标签并将其视为表格。将<ul> 标记视为表格行,将<li> 标记视为表格单元格。例如:
nav{
display: table;
text-align: center;
width: 100%
}
nav ul{
display: table-row;
}
nav ul li {
display: table-cell;
}
这会将<li>的内容拉伸100%
【讨论】: