【问题标题】:Vertical Align mixed elements within li elements垂直对齐 li 元素内的混合元素
【发布时间】:2011-04-21 21:30:35
【问题描述】:

长期读者,第一次发帖:)对此有什么好主意吗? :

我有 4 个 <li> 元素显示为内联块。

这些元素中的每一个都包含多种元素。 3 包含一个<h3> 和一个<div>。 1 包含一个<q>、一个<strong> 和一个<a>

我的问题:我怎样才能垂直对齐这些元素的文本,而不对其中的文本数量施加任何限制,或者事先不知道其中的文本数量?随着文本长度的增加,当我希望它们保持在顶部时,较短的列会随着 <ul> 的底部而下降!

代码和结果可以在这里查看: http://jsfiddle.net/m6HG5/5/

谢谢!

【问题讨论】:

  • 您能给我们一个示例,看看您的代码目前的样子吗?您可以使用jsfiddle.net 让事情变得简单。
  • 请发布您的所有标记!
  • 哎呀....已经相应地编辑了我的帖子!

标签: html css alignment


【解决方案1】:

假设我正确理解了您的问题,您需要指定 UL 元素的 line-height:

<ul>
    <li><h3>List Item 1</h3></li>
    <li><strong>List Item 2</strong></li>
    <li><a href="#">List Item 3</a></li>
</ul>

还有样式:

 ul {
        line-height:1em;
    }

li {
    float:left;
    vertical-align:middle;
    padding:5px;
    display:block;
}

h3 {
    font-size:1.5em;
}

strong {
    font-weight:bold;}

http://jsfiddle.net/m6HG5/3/

【讨论】:

  • 您好,感谢您的回答。不幸的是,当我希望它根据需要扩展时,这会将 ul 锁定在固定高度。我只希望短块保持在顶部!