我需要创建一个具有不断变化的项目数量的水平导航菜单(这很重要 – 我不能将宽度粗加到CSS中,我不想用JS计算它们),填充到一定宽度,让我们说800px.
与表,
- <table width="800" cellspacing="0" cellpadding="0">
- <tr>
- <td>One</td>
- <td>Two</td>
- <td>Three</td>
- <td>Four</td>
- <td>Five Seven</td>
- </tr>
- </table>
- <style>
- table td {
- padding: 5px 0;
- margin: 0;
- background: #fdd;
- border: 1px solid #f00;
- text-align: center;
- }
- </style>
请注意,较长的项目占用更多的空间,我可以在HTML中添加项目,而无需更改CSS中的任何内容,并且菜单项缩小以适应其他项目 – 整个菜单永远不会缩短或超过800像素.
由于菜单不是语义上正确的使用表,可以用列表和纯CSS来完成吗?
@H_301_10@解决方法
在
browsers that support the table display CSS规则中,是的:
- <style>
- nav {display:table; width:800px; background:yellow}
- ul {display:table-row; }
- li {display:table-cell; border:1px solid red}
- </style>
- <nav>
- <ul>
- <li>One</li>
- <li>Two</li>
- <li>Three</li>
- <li>Four</li>
- <li>Five Seven</li>
- </ul>
- </nav>
基本上,你必须建立一个令牌表.行动:http://jsbin.com/urisa4
否则:不,如果你不能妥协你的要求.
@H_301_10@ @H_301_10@