CSS:最后一个孩子
我有一个div#content
,里面有很多div.item
。 当使用:last-child
来创建最后的div.item
而没有border-bottom
时,这没关系。 但是,作为内容使用我使用的将在最后一个div.item
这意味着在div#content
的底部之后附加有条件的分页表PHP和MySQL结果动态地追加。这将是问题,因为CSS :last-child
不会识别最后一个孩子的最后一个div.item
。 我的CSS是这样的: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
一个可能性我能想到的是,你要追加不在<div>
S和/或不具备item
类元素。检查PHP/MySQL脚本的输出,看看除了(DOM术语)div.item
元素之外是否还有任何非div.item
元素。
这些元素不会选择匹配:
div#content div.item:last-child
即选择只发现<div>
s的item
类,那是div#content
最后一个孩子。
下面是一个例子。
附加
<div id="content">
<div class="item"></div> <!-- [1] Selected -->
</div>
附加
<div id="content">
<div class="item"></div> <!-- [2] Not selected -->
<div></div> <!-- [3] Not selected -->
</div>
什么选择的,哪些不是,并为什么之后之前?
-
选择
这<div>
元素具有item
类,并且它是div#content
最后一个孩子。它完全符合上述选择器。
-
未选择
这<div>
元素具有item
类,但不的的div#content
最后一个孩子。它不完全匹配上面的选择器;但是,它可能匹配这些选择的任何一个:
/* Any div.item inside div#content */ div#content div.item /* The last div.item child of its parent only */ div#content div.item:last-of-type
-
未选择
虽然这<div>
元素是最后一个孩子,它不有item
类。它不完全匹配上面的选择器;但是,它可能匹配这样的:
/* Any div that happens to be the last child of its parent */ div#content div:last-child
这非常有帮助!非常感谢! – medk 2010-10-08 23:51:27
很好的解释。注意展开讨论为什么'div#content div.item:not(.dont-want):last-of-type'不能按预期工作? – 2011-02-11 17:36:55
@凯文·佩诺:划伤我以前的评论。这是因为':not()'总是在':last-of-type'之后被处理。这意味着':last-of-type'元素被选中,如果它碰到':not()'则被丢弃。看[这个修改过的jsFiddle示例](http://jsfiddle.net/BoltClock/CfZdN)。 – BoltClock 2011-02-11 17:52:14
你可以使用JavaScript刷新CSS只。看到这里:http://paulirish.com/2008/how-to-iterate-quickly-when-debugging-css/
另一种方法是使用类似jQuery的库,并在每次添加新div时触发这一行脚本。 (也许你正在使用其他JS库,就像你说的,你是动态添加的div页面)
$('div#content div.item:last-child').css('borderBottom','none');
你可能需要你做上面虽然之前重置边界。即前面的'最后'div仍然没有边界底部。因此重置所有边框然后触发脚本以删除最后一个边框。
它似乎追加项目dinamically不会使布局引擎重新运行像一些CSS规则:最后一个孩子。
我想你可以重新读取/重新加载CSS文件,使规则适用。不知道,这是一个猜测。
另一种可能性是dinamically设置样式。
编辑:看来你有一个CSS浏览器的问题。
检查了这一点:http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28Cascading_Style_Sheets%29#Selectors
你确定你只附加在子级别'div.item'而不是别的? – BoltClock 2010-10-08 23:45:07
请注意':last-child' [不支持在IE中](http://www.quirksmode.org/css/contents.html#t35)。你使用的是什么浏览器? – 2010-10-08 23:38:07
@Andrew Vit:那么,如果OP说它一开始工作正常,他就不能使用IE。 – BoltClock 2010-10-08 23:40:43