我有一个<ul>
,其中包含许多<li>
个元素。其中一些是隐藏的,并在点击jQuery after()
后添加到列表的末尾。
但是,出于某种原因,添加after()
的元素总是与它们之后添加的元素过于接近。
我制作了一个jsbin来演示here
另外,截图解释:
使用after()
代替简单addClass
或show
的原因是因为列表依赖于应用li:nth-child(even)
样式,所以如果元素在那里,但是只有隐藏,才会导致列表样式出现问题。
答案 0 :(得分:10)
答案是因为<li>
元素是inline
,并且在HTML中用换行符分隔,换行符会在换行符之间创建一个空格。
当您以编程方式插入元素时,它们不会被换行符分隔,因此它们之间不会出现空格。
您可以通过将所有li
元素放在一行上,间距消失,或将float:left
添加到CSS中的li
来查看换行符的效果/ p>
答案 1 :(得分:2)
正如SW4所说。 <li>
这里有效 http://jsbin.com/licowaqe/4/edit 区别在于HTML
data-additional=" <li>Four</li> <li>Five</li> <li>Six</li>"
有空格
答案 2 :(得分:0)