我有一个(XHTML Strict)页面,在该页面中,我将图像与常规文本段落一起浮动。一切顺利,除非使用列表而不是段落。列表的项目符号与浮动图像重叠。
更改列表或列表项的边距没有帮助。边距是从页面左侧计算的,但浮动将列表项推到自身 内部 的右侧li。因此,仅当我使其比图像更宽时,边距才有帮助。
li
浮动图像旁边的列表也可以,但我不知道列表何时在浮动旁边。我不想为了解决这个问题而浮动我的内容中的每个列表。 此外,当图像浮动到列表的右侧 而不是左侧时,向左浮动会弄乱布局。
设置li { list-style-position: inside }确实会随着内容移动项目符号,但它也会导致换行开始与项目符号对齐,而不是与上面的行对齐。
li { list-style-position: inside }
问题显然是由于子弹被渲染在盒子外面,浮动将盒子的内容推到了右边(而不是盒子本身)。这就是 IE 和 FF 处理这种情况的方式,据我所知,根据规范并没有错。问题是,我该如何预防呢?
我找到了解决这个问题的方法。将 anul { overflow: hidden; }应用于ul确保盒子本身被浮动推到一边,而不是盒子的内容。
ul { overflow: hidden; }
ul
只有 IE6 需要ul { zoom: 1; }在我们的条件注释中添加一个来确保ul有布局。
ul { zoom: 1; }