【问题标题】:CSS - vertical align text (grandchildren of table)?CSS - 垂直对齐文本(表格的孙子)?
【发布时间】:2017-07-07 00:09:40
【问题描述】:

我有相当复杂的表格布局,有一个包装器设置为display: table,它的子级设置为display: table-cell。不幸的是,表格包装器的一些孙辈也需要垂直对齐。我无法将它们设置为表格单元格,因为它似乎不起作用。有什么想法吗?

基本上我想将红色按钮的“t”字母居中。我不知道父母的高度,所以不能使用line-height,因为它是inline-block vertical-align 不能作为出色地。并将它们的显示更改为table-cell 会降低它们的高度。

这是 jsfiddle: http://jsfiddle.net/cZ7Th/5/

CSS:

.menu {
    width: 100%;
    display: table;
    background: #eee;
}

.logo {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    background: #ccc;
    padding: 0 2rem;
    height: 9rem;
}

ul {
    margin: 0 1rem;
}

.links {
    height: 100%;
    display: table-cell;
    vertical-align: middle    
}

.links li {
    height: 100%;
    padding: 0;
    display: inline-block;
    background: #ddd;
}

.links li a {
    padding: 0 2rem;
    background: red;
    display: inline-block;
    height: 100%;
}

HTML:

<div class="menu">
    <div class="logo">logo</div>
        <ul class="links">        
            <li><a href="#">t</a></li>
            <li><a href="#">t</a></li>
            <li><a href="#">t</a></li>
        </ul>
</div>

【问题讨论】:

  • 出于兴趣,您为什么在徽标和 ul 上使用display: table 单元格?如果没有它,你就不能实现同样的目标吗?
  • @wordpressor 如果回答对您有帮助,请标记为已接受。谢谢:)

标签: css vertical-alignment css-tables


【解决方案1】:

请执行以下操作:

.links li a {
    padding: 100% 2rem;
    background: red;
    display: inline-block;
}

fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2013-09-04
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多