Css 使用“显示:表格”进行垂直对齐导航
以下是我努力实现的目标: 显示我拥有的样式(利用Css 使用“显示:表格”进行垂直对齐导航,css,navigation,vertical-alignment,Css,Navigation,Vertical Alignment,以下是我努力实现的目标: 显示我拥有的样式(利用display:table,因为我不想固定每个项目的宽度,它应该是响应性的) 我很接近了,以下是它的造型(为简洁起见是SASS)和外观: .nav--main { ul { display: table; table-layout: fixed; width: 100%; border-collapse: collapse; li {
display:table
,因为我不想固定每个项目的宽度,它应该是响应性的)
我很接近了,以下是它的造型(为简洁起见是SASS)和外观:
.nav--main {
ul {
display: table;
table-layout: fixed;
width: 100%;
border-collapse: collapse;
li {
display: table-cell;
border: 1px solid #333;
text-align: center;
line-height: 1.2;
vertical-align: top;
overflow: hidden;
}
}
a {
display: inline-block;
vertical-align: middle;
width: 100%;
height: 200%;
padding: .5em;
background-color: rgba(105,158,197,1);
color: #fff;
text-decoration: none;
}
}
<>但是我不能得到<代码> A/COD>占据整个高度并保持垂直居中。显示了一种黑客尝试,但仅通过将vertical align
设置为top
我不想:
- 定高度
- 将背景色放在
而不是li
上:我讨厌可点击区域没有利用所有可用空间a
- 添加以下内容:
background: rgba(105,158,197,1);
进入ul
这将背景颜色设置为与链接相同的颜色。我不知道,在这种情况下,这可能会中断,但有点脏的技巧可能是: 仅更新CSS部分
ul {
overflow: hidden;
}
a {
margin: -5em 0;
padding: 5.5em 0;
}
演示
这并不能解决问题,因为OP希望链接填满整个表格单元格。@InsertUserName在这里,我认为根据他的要求,不改变链接的高度或宽度是不可能的。干杯-这看起来确实很有效(在Chrome、FF和IE 8-10中)。我想看看是否有人能想出一个不那么“肮脏”的解决方案!这也使得它很难在链接上添加渐变背景,因为大部分内容实际上是隐藏的。例如:“在CSS 2.1中,单元格框的高度是内容所需的最小高度。表格单元格的‘高度’属性可以影响行的高度(见上文),但不会增加单元格框的高度。”。