当前位置: 首页 > 面试题库 >

使用浮动图像时,HTML列表未垂直对齐

濮阳默
2023-03-14
问题内容

我有一个包含标题,文本和图像的列表,有时,当文本不足时,我的列表开始破裂。列表开始嵌套。

<ul>
   <li><img style="float:left"><h3>title</h3> ... some text here</li>
   <li><img style="float:left"><h3>title</h3> ... some text here</li>
   <li><img style="float:left"><h3>title</h3> ... some text here</li>
</ul>

我这里有一个例子:

img {

  float: left;

  margin-right: 0.1em;

}


<ul>

  <li>

    <h3>photo</h3>

    <img src="http://commons.cathopedia.org/w/images/commons/thumb/f/fe/Carnevale_di_Venezia.JPG/250px-Carnevale_di_Venezia.JPG" />some text next to the photo

  </li>

  <li>

    <h3>photo</h3>

    <img src="http://commons.cathopedia.org/w/images/commons/thumb/f/fe/Carnevale_di_Venezia.JPG/250px-Carnevale_di_Venezia.JPG" />some text next to the photo

  </li>

  <li>

    <h3>photo</h3>

    <img src="http://commons.cathopedia.org/w/images/commons/thumb/f/fe/Carnevale_di_Venezia.JPG/250px-Carnevale_di_Venezia.JPG" />some text next to the photo

  </li>

</ul>

解决此问题的最佳方法是什么?


问题答案:

您缺少的部分是清除floats。用这个:

li:after {
    content: '';
    display: block;
    clear: both;
}

现在您将删除“嵌套”。

请注意,在使用浮动容器时,应始终将clear 它们放置在紧随其后的下一个容器之前,从而在调用它时创建新的 块格式化上下文
。否则,您将看到不可预测的行为。

修改后的演示如下:

img {

    float: left;

    margin-right: 0.1em;

}

li:after {

    content: '';

    display: block;

    clear: both;

}


<ul>

<li>

<h3>photo</h3>

<img src="http://commons.cathopedia.org/w/images/commons/thumb/f/fe/Carnevale_di_Venezia.JPG/250px-Carnevale_di_Venezia.JPG" /> some text next to the photo

</li>

<li>

<h3>photo</h3>

<img src="http://commons.cathopedia.org/w/images/commons/thumb/f/fe/Carnevale_di_Venezia.JPG/250px-Carnevale_di_Venezia.JPG" /> some text next to the photo

</li>

<li>

<h3>photo</h3>

<img src="http://commons.cathopedia.org/w/images/commons/thumb/f/fe/Carnevale_di_Venezia.JPG/250px-Carnevale_di_Venezia.JPG"  /> some text next to the photo

</li>

</ul>


 类似资料:
  • 问题内容: 我有一个包含图像和ap标签的div(如下所示)。我想根据段落的多少行在div的中间垂直对齐图像。垂直对齐不起作用。我现在正在使用JavaScript找出要添加到margin- top的数量,但是宁愿使用CSS。有任何想法吗? 问题答案: 尝试将元素的属性设置为图像的高度,例如: 编辑: 刚意识到我读错了问题,却错过了多行的事实。尝试的一种选择是完全删除元素,并将其设置为of的,使用的o

  • 问题内容: 我有一个div(#wrapper),其中包含2个并排站立的div。 我希望将右div垂直对齐。我在主包装器上尝试了vertical-align:middle,但是它不起作用。它让我发疯! 希望有人能帮忙。 HTML: CSS: 问题答案: 您没有浮点元素的运气。他们不服从垂直对齐, 您需要的是: 请小心,因为它将元素之间的空白解释为真实的空白。它不会像对待它那样忽略它。 我建议这样做:

  • 问题内容: 我在div中垂直对齐图像时遇到问题 据我所知,我需要“显示:块;” 定位图像在中心,这是可行的。同样在教程中,我找到了很多答案,但它们并不是“有用的”,因为我的所有图像都不在同一高度! 问题答案: 如果容器中的高度固定,则可以将line-height设置为与高度相同,并且它将垂直居中。然后只需添加text-align使其水平居中即可。 编辑 您的代码应如下所示: 更新 现在是2016年

  • 问题内容: 我有一个(水平)居中的外部div,其中包含两个宽度未知的元素: 默认情况下,两个浮点都是顶部对齐的,并且高度/高度未知/不同。有什么办法可以使它们垂直居中? 我最终做了外股 和内部div 但我很好奇,是否有办法用花车做到这一点。 问题答案: 您不能直接执行此操作,因为浮点数与顶部对齐: 如果有一个线框,则浮动框的外部顶部与当前线框的顶部对齐。 确切的规则说(强调我的): 浮动框的外部顶

  • 我有一个由我的WordPress主题提供的社交类如下,它垂直放置: 我正在尝试将此列表放置在一条水平线上 但我被困住了。有人有主意吗?

  • 问题内容: 如何在容器中对齐图像? 例 在我的例子,我需要垂直居中的在用“: 的高度是固定的,图像的高度是未知的。如果这是唯一的解决方案,则可以添加新元素。我正在尝试在Internet Explorer 7和更高版本的WebKit,Gecko上执行此操作。 在这里查看jsfiddle 。 问题答案: 唯一的(和最好的跨浏览器)的方式,因为我知道是使用佣工,并在这两个元素。 因此,有一个解决方案:h