我有一个div#content
,里面有很多div.item
。
当使用:last-child
来创建没有border-bottom
的最后一个div.item
时,它没问题。
但是,因为内容是使用php和mysql结果动态追加的,所以我使用了一个条件分页表,它将在最后一个div.item
后面添加,这意味着div#content
的底部。这将是问题,因为CSS :last-child
不会将最后一个div.item
识别为最后一个子元素。
我的CSS看起来像:
div#content div.item:last-child { border-bottom: none; }正如你所看到的,我正在定义最后一个子元素ID如
div.item
任何建议请。提前致谢。
!!!!!请注意,问题并不在于内容是动态的,而是因为CSS:last-child无法识别div.item作为最后一个子元素,但是div#内容中的最后一个元素尽管告诉了它是CSS:
div#content div.item:last-child
3 个回复
isit 2018-10-12
赞同来自:
你可以使用javascript来刷新CSS。见:http://paulirish.com/2008/how-to-iterate-quickly-when-debugging-css/ 另一种方法是使用像jQuery这样的库,并在每次添加新div时触发这一行脚本。 (或者你正在使用另一个js库,因为你说你正在动态地向页面添加div)
在执行上述操作之前,您可能需要重置边框。即前一个'last'div可能仍然没有边框底部。所以重置所有边框然后激活脚本以删除最后一个边框。ncum 2018-10-12
赞同来自:
似乎附加项目不会使布局引擎重新运行一些CSS规则,如:last-child。 我认为您可以重新读取/重新加载CSS文件,使规则适用。不知道,这是猜测。 另一种可能性是动态设定风格。
编辑:似乎你有一个CSS x浏览器问题。 看看这个:http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28Cascading_Style_Sheets%29#Selectors
tiste 2018-10-12
赞同来自:
我能想到的一种可能性是你附加的元素不是
该选择器仅查找带有<div>
s和/或没有item
类。检查PHP / MySQL脚本的输出,看看是否有任何非div.item
元素(在DOM术语中)div.item
元素。 这些元素与选择器不匹配:item
类的<div>
,这是div#content
的最后一个子类。 这是一个例子。 在追加之前 追加后 选择什么,什么不选择,为什么?<div>
元素具有item
类,它是div#content
的最后一个子元素。 它与上面的选择器完全匹配。此
<div>
元素具有item
类,但不是div#content
的最后一个子元素。 它与上面的选择器不完全匹配;但是,它可能匹配这些选择器中的任何一个:虽然此
<div>
元素是最后一个子元素,但它没有item
类。 它与上面的选择器不完全匹配;但是,它可能匹配这个: