Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 最后一个孩子_Css_Css Selectors - Fatal编程技术网

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