免责声明
浮动元素旁边的列表会引起问题。我认为,防止此类浮动问题的最佳方法是避免浮动图像与内容相交。当您必须支持响应式设计时,它也会有所帮助。
在段落之间居中放置图像的简单设计看起来非常吸引人,并且比试图太花哨更容易支持。距距离也仅有一步之遥<figure>
。
但是我真的想要浮动的图像!
好的,因此,如果您疯狂地坚持不懈地继续沿着这条道路前进,则可以使用两种技术。
最简单的方法是使列表使用overflow: hidden
或overflow: scroll
,以使列表实质上被收缩包装,从而将填充物拉回到有用的位置:
img {
float: left;
}
.wrapping-list {
overflow: hidden;
padding-left: 40px;
}
<img src="http://placehold.it/100x100"/>
<ul class="wrapping-list">
<li>lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li>sit</li>
<li>amet</li>
</ul>
但是,该技术存在一些问题。如果列表很长,实际上并不会环绕图像,这几乎破坏了float
在图像上使用的全部目的。
img {
float: left;
}
.wrapping-list {
overflow: hidden;
padding-left: 40px;
}
<img src="http://placehold.it/100x100"/>
<ul class="wrapping-list">
<li>lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li>sit</li>
<li>amet</li>
<li>lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li>sit</li>
<li>amet</li>
<li>lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li>sit</li>
<li>amet</li>
</ul>
但是我真的很想包装清单!
好的,因此,如果您甚至更疯狂,更持久,并且绝对必须沿着这条道路走下去,那么还有另一种技术可以用来包装列表项和维护项目符号。
与其填充<ul>
并尝试使其与项目符号表现良好(这似乎从来都不希望这样做),<ul>
不如将这些项目符号从那里拿走并交给<li>
s。项目符号是危险的,<ul>
正义者没有足够的责任来正确处理它们。
img {
float: left;
}
.wrapping-list {
padding: 0;
list-style-position: inside;
}
.wrapping-list li {
overflow: hidden;
padding-left: 25px;
}
<img src="http://placehold.it/100x100"/>
<ul class="wrapping-list">
<li>lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li>sit</li>
<li>amet</li>
<li>lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li>sit</li>
<li>amet</li>
<li>lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li>sit</li>
<li>amet</li>
</ul>
这种包装行为会使复杂的内容变得奇怪,因此我不建议默认添加它。将其设置为可以选择加入的内容而不是必须覆盖的内容要容易得多。