垂直居中的嵌套DIV

西诺

有没有办法将纯CSS中的n个嵌套div垂直居中

考虑无序列表:

<ul>
    <li>
        <a href="#">Home</a>
    </li>
    <li>
        <a href="#">Products & Services</a>
    </li>
    <li>
        <a href="#">Contact Us</a>
    </li>
</ul>

我希望该列表水平出现在响应式网站上。因此,为此,我将使用表布局,将display:table应用于元素<ul>并将display:table-cell应用于<li>元素。

但是在这些<li>元素中,我也希望这些元素垂直居中。这很重要,因为在响应式设计中,我们不知道<a>元素中的文本何时流到两行或包含在一行中。例如,上面的“首页”链接将只占据一行,而“产品和服务”链接将占据两条较小的宽度。

现在,我们无法在此处使用表格技巧,因为此处的父元素<li>具有display:table-cell而不是display:table。

有没有办法做到这一点:

  1. 而不更改上面的HTML结构?这通常是WordPress之类的CMS中菜单的默认结构,有时我们无法选择更改它。
  2. 在纯CSS中,无需jQuery的帮助;
  3. 可以在所有现代浏览器中使用?

(请不要建议对<li>元素使用非表布局。上面的示例仅是一个示例;问题仍然存在:我们可以将嵌套的div垂直居中吗?)

谢谢

SW4

为什么不能简单地添加vertical-align:middle;li与元素display:table-cell;集。

垂直对齐

vertical-align CSS属性指定嵌入式或表格单元格框的垂直对齐方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章