当前位置: 首页 > 面试题库 >

CSS可以检测元素包含的子级数目吗?

戈华茂
2023-03-14
问题内容

我可能在回答自己的问题,但我很好奇。

我知道CSS可以选择父级的各个子级,但是如果其父级有一定数量的子级,则可以支持样式化容器的子级。

例如

container:children(8) .child {
  //style the children this way if there are 8 children
}

我知道这听起来很奇怪,但是我的经理要求我检查一下,自己还没有找到任何东西,因此我决定在结束搜索之前转向SO。


问题答案:

澄清:

由于原始问题的先前措辞,一些SO公民提出了对此答案可能产生误解的担忧。请注意,在CSS3中,无法根据样式的 级数将样式应用于 父节点 。但是,
可以 根据子节点具有的 兄弟 节点数将样式应用于子节点。

原始答案:

令人难以置信的是,现在这完全可以在CSS3中实现。

/* one item */
li:first-child:nth-last-child(1) {
/* -or- li:only-child { */
    width: 100%;
}

/* two items */
li:first-child:nth-last-child(2),
li:first-child:nth-last-child(2) ~ li {
    width: 50%;
}

/* three items */
li:first-child:nth-last-child(3),
li:first-child:nth-last-child(3) ~ li {
    width: 33.3333%;
}

/* four items */
li:first-child:nth-last-child(4),
li:first-child:nth-last-child(4) ~ li {
    width: 25%;
}

诀窍是在第一个孩子也是第n个孩子时选择第一个孩子。 这有效地根据兄弟姐妹的数量进行选择。

这种技术值得称赞的是AndréLuís(已发现)和Lea Verou(已提炼)。



 类似资料:
  • 问题内容: 标签中可以包含哪些有效的html元素(如果有)? 问题答案: 内联元素(除其他外)可以包含其他内联元素和文本节点。锚点可以包含一个范围,该范围可以包含一个文本节点。 通常,块级元素可以包含内联元素和其他块级元素。通常,内联元素可以仅包含数据和其他内联元素。这种结构上的区别固有的思想是,块元素比内联元素创建“更大”的结构。 在其他的答案指出,你不能嵌套的在。

  • 我有以下从一个网页简化的HTML... 需要以下XPath选择条件... col-md-3 div内的输入标记,该标记紧接在包含class=manditional的span的col-md-3 div之后 输入标记不应隐藏 上面HTML中的以下元素与搜索条件匹配 (请注意,ID中的数值是动态分配的,在搜索文档时我不会知道。) 在添加任何前一种兄弟检查之前,这是我的....

  • 我正在尝试解决这个算法问题: https://dunjudge.me/analysis/problems/469/ 为了方便起见,我总结了下面的问题陈述。 给定一个长度为 ( 多数元素定义为发生的元素 时限:1.5s 例如: 如果给定的数组是[1,2,1,2,3,2], 答案是5,因为从位置1到5 (0索引)的长度为5的子数组[2,1,2,3,2]具有出现为3的数字2 首先想到的是一个明显的强力(

  • 本文向大家介绍块级元素不能包含其他块级元素有那些?相关面试题,主要包含被问及块级元素不能包含其他块级元素有那些?时的应答技巧和注意事项,需要的朋友参考一下 嵌套规则: 块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。 块级元素不能放在p里面。 有几个特殊的块级元素只能包含内联元素,不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dt li内可

  • 所以我正在用svg开发一个地图,我希望能够根据用户输入缩放到svg中的预定义区域(一个州或国家)。我找到了一个教程,该教程既能做到这一点,又能对其进行动画化,在这里:https://css-tricks.com/interactive-data-visualization-animating-viewbox/ith codepen在这里:https://codepen.io/sdras/pen/5

  • 在寻找这个问题的答案时,我也遇到过类似的利用LINQ的方法,但是我还不能完全理解它们(并因此实现它们),因为我对它还不熟悉。基本上,我想说的是: 检查列表的任何元素是否包含特定字符串。 如果是,则获取该元素。 老实说,我不知道该如何着手做那件事。我能想出的是这个(当然不工作): 我知道为什么它不起作用: 不返回,因为它将检查列表的整个元素是否与我指定的字符串匹配 不会找到匹配项,因为它将再次检查与