【发布时间】:2014-02-22 06:05:39
【问题描述】:
我正在尝试创建一个简单的 CSS 菜单。以下是限制条件:
- 填充父容器宽度的 100%
- 父容器具有基于百分比的宽度
- 让每个按钮都等宽
- 让整个按钮都可点击(即锚标记展开以填充整个 li 标记)
- 动态生成按钮宽度。
- 让文本在菜单中心垂直对齐
- 我们可以放心地假设只有 3 个菜单项。 (让它适用于 N 个项目会很好,但不是必需的)。
这里是html:
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
</ul>
这是我的尝试,每个都有自己的失败。
-
http://jsfiddle.net/QzYAr/266/(宽度不表示为 %)
ul { width: 600px; display: table; table-layout: fixed; background: #EEE; } li { float: left; border: 1px dotted red; } a { display: table-cell; height: 50px; vertical-align: middle; text-align: center; width: 150px; border: 1px dotted green; } -
http://jsfiddle.net/RzeK2/(锚标签未填满高度)
ul { width: 80%; display: table; table-layout: fixed; background: #EEE; } li { float: left; border: 1px dotted red; } a { display: table-cell; height: 50px; vertical-align: middle; text-align: center; width: 150px; /*this is the part that needs work?*/ border: 1px dotted green; } -
http://jsfiddle.net/XsLHY/(锚标签文本不垂直居中)
ul { width: 80%; display: table; table-layout: fixed; background: #EEE; } li { display: table-cell; width: 33%; height: 50px; vertical-align: middle; text-align: center; border: 1px dotted red; } a { display: block; border: 1px dotted green; height: 50px; } -
http://jsfiddle.net/w55Lg/ [以下两个答案的建议](如果文本换行会创建丑陋的按钮,并且其他按钮现在不是全高)
same as three, plus: a { line-height: 50px; }
【问题讨论】: