Css 最后一个孩子
我有一个Css 最后一个孩子,css,css-selectors,Css,Css Selectors,我有一个div#content,里面有许多div.item。 当使用:last child创建最后一个div.item且底部没有边框时,可以。 但是,由于内容是使用php和mysql结果动态追加的,我使用的是一个条件分页表,它将追加在最后一个div.item之后,这意味着在div\content的底部。这将是一个问题,因为CSS:最后一个子项将无法识别最后一个子项div.item。 我的CSS看起来像: div#content div.item:last-child { border-bot
div#content
,里面有许多div.item
。
当使用:last child
创建最后一个div.item
且底部没有边框时,可以。
但是,由于内容是使用php和mysql结果动态追加的,我使用的是一个条件分页表,它将追加在最后一个div.item
之后,这意味着在div\content
的底部。这将是一个问题,因为CSS:最后一个子项将无法识别最后一个子项div.item
。
我的CSS看起来像:
div#content div.item:last-child {
border-bottom: none;
}
如您所见,我正在定义最后一个子id,例如div.item
有什么建议吗。提前谢谢
!!!!!请注意,问题不在于内容是动态的,而在于CSS:last child不将div.item识别为div#content中的最后一个子项,而是最后一个元素,尽管它告诉CSS:
div#content div.item:last-child
您只能使用javascript刷新CSS。请看这里:
另一种方法是使用jQuery之类的库,并在每次添加新div时触发这一行脚本。(或者您正在使用另一个js库,正如您所说,您正在动态地向页面添加div)
但在执行上述操作之前,可能需要重置边框。i、 e.上一个“最后一个”div可能仍然没有边框底部。因此,重置所有边框,然后启动脚本以删除最后一个边框。似乎以友好方式附加项不会使布局引擎重新运行某些CSS规则,如:last child
我认为您可以重新读取/重新加载CSS文件,使规则生效。不知道,这只是猜测
另一种可能是通过友好方式设置样式
编辑:看起来你有一个CSS x浏览器问题
检查一下:我能想到的一种可能性是,您添加的元素不是
s和/或没有项
类。检查PHP/MySQL脚本的输出,查看div.item
元素旁边(用DOM术语)是否有任何非div.item
元素
这些元素与选择器不匹配:
div#content div.item:last-child
该选择器仅查找具有项类的
s,它们是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>
未选择
尽管此
元素是最后一个子元素,但它没有项
类
它与上面的选择器不完全匹配;但是,它可能与此相匹配:
/* Any div that happens to be the last child of its parent */
div#content div:last-child
谢谢您的回答,但正如我所说,我正在使用php和mysql动态生成div.itemS,所以在将页面发送到客户端之前。@med,让我看看我是否理解。。。你以前从未见过“最后一个孩子”规则有效吗?我还以为是js动态生成的。若这是在发送到客户端之前,我假设你们的CSS规则从来并没有工作过。在这种情况下,您能告诉我您正在使用什么浏览器进行测试吗?谢谢您的回答,但正如我所说,我正在使用php和mysql动态生成div.itemS,所以在将页面发送到客户端之前。@med:好的,然后在页面呈现后运行一些javascript将是我建议的选项之一。很好的解释。想进一步谈谈为什么div#content div.item:not(.not want):最后一个类型的无法按预期工作吗?@Kevin Peno:请删除我之前的评论。这是因为:not()
总是在:last of type
之后处理。这意味着选中类型为
的:last元素,如果它命中:not()
,则将其丢弃。看,我明白了,所以即使not选择器首先出现,not也是最后处理的。这是不幸的。凯文·佩诺:想不出有什么办法,但那可能只是我在凌晨2点键入的:请注意,:最后一个孩子是。你用的是什么浏览器?@Andrew Vit:好吧,如果OP一开始说它工作正常,他一定不是在使用IE。你确定你只是在子级添加了div.item
,而不是其他任何东西吗?
/* 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
/* Any div that happens to be the last child of its parent */
div#content div:last-child