首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无序列表Clearfix

无序列表Clearfix
EN

Stack Overflow用户
提问于 2012-06-20 08:26:15
回答 1查看 3.8K关注 0票数 2

我有一个无序列表,每个列表元素都包含一张照片和一个标题。我的CSS将网格设置为网格,其中每行包含三张照片。有时标题(或图片标题)比照片的宽度还要长,必须跨两行。在某些情况下,当文本跨越2+行时,它下面的列表元素会被推到右边,列表中会有一个很大的间隙。对我来说唯一有效的修复方法是在每三个<li></li>元素之后添加以下HTML <div style="clear:both"></div>。这个问题可以在列表元素的第三行中看到。我试着研究这个问题,但没有找到一个只有CSS的方法。在我的示例代码中,我应用了CSS clearfix类,但它似乎没有任何效果。

我使用的是最新版本的Google Chrome。

下面是我的代码:http://jsfiddle.net/NVveP/1/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-20 17:24:16

同时拥有float: leftdisplay: inline-block实际上将使display: inline-block无效,因为float: left forces display: block

因此,删除float: left可以让display: inline-block正常工作,再加上vertical-align: top,您就可以实现所需的布局。

请参阅: http://jsfiddle.net/thirtydot/NVveP/3/

如果有必要的话,我还添加了一个hack来让display: inline-block在IE7中工作。

使用浮点数来实现这一点会更加困难。你需要一些东西来达到以下效果:

代码语言:javascript
复制
li:nth-child(3n+1) {
    clear: both;
}

幸运的是,没有必要担心这一点,因为display: inline-block是这里的解决方案,而不是浮动。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11111302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档