span {
float: left;
width: 200px;
}

<ul>
<li><span>test</span></li>
</ul>
&#13;
在firefox vs chrome中看一下这个,chrome会在浮动的span元素后显示子弹。
我不确定这里发生了什么,似乎浮动正在逃避webkit中的列表项。有人遇到这个并知道解决方案吗?
答案 0 :(得分:4)
正如@silviagreen所指出的,这是一个webkit-specific bug,但作为一种解决方法,我建议在列表项中添加透明边框。这似乎正常工作(但老实说,我承认我无法弄清楚为什么这应该有效)
li {
border: 1px transparent solid;
}
https://jsfiddle.net/rjkz7ny1/
将float: left
更改为display: inline-block
或将clear: left
更改为列表的其他方法suggest,但我觉得这些变通办法有点过于庞大(并不总是适用)而不是添加一个明确的边界。
答案 1 :(得分:0)
可以使用带有counter
列表ol
的伪元素来避免错误并使用border
s
span {
float: left;
width: 200px;
}
ol {
counter-reset:marker;
}
li {
counter-increment:marker;
list-style-type:none;
box-shadow:0 2px gray;
}
li:before {
content:'\02022 ';
padding-right:0.25em;
float:left;
}
ol li:before {
content:counter(marker)'. ';
}
hr ~* li:before {
text-indent:-1em;
}
li:after {
content:'';
display:table;
clear:both;
<ul>
<li><span>test</span></li>
<li><span>test</span></li>
</ul>
<ol>
<li><span>test</span></li>
<li><span>test</span></li>
</ol>
<hr/>
<ul>
<li><span>test</span></li>
<li><span>test</span></li>
</ul>
<ol>
<li><span>test</span></li>
<li><span>test</span></li>
</ol>