Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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
Html CSS选择器,用于特定的_Html_Css - Fatal编程技术网

Html CSS选择器,用于特定的

Html CSS选择器,用于特定的,html,css,Html,Css,假设图像(由于请求而更改为实际工作表)是html的一个示例,其实现了不同的colspan和行span。在给定的图像中,是否有一个原生的css选择器可以选择所有直接满足底部水平边界的,或者实现这一点的唯一方法是为这些指定的单元格提供特定的类?是的,您可以使用属性选择器和,如果需要,请选择第n个类型() 例如: th[colspan="1"] th[rowspan="4"] th[colspan="1"]:nth-of-type(2) 所有有效的CSS选择器都可以捕获您想要的内容 当然,可以将


假设图像(由于请求而更改为实际工作表)是html
的一个示例,其
实现了不同的
colspan
行span
。在给定的图像中,是否有一个原生的
css
选择器可以选择所有直接满足
底部水平边界的
,或者实现这一点的唯一方法是为这些指定的单元格提供特定的

是的,您可以使用属性选择器和,如果需要,请选择第n个类型()

例如:

th[colspan="1"]

th[rowspan="4"]

th[colspan="1"]:nth-of-type(2)
所有有效的CSS选择器都可以捕获您想要的内容


当然,可以将:nth of type(n)选择器附加到父级,作为选择具有特定colspan的th的“过滤器”。

是的,您可以通过混合使用属性选择器和(如果需要)nth-of-type()捕捉这些

例如:

th[colspan="1"]

th[rowspan="4"]

th[colspan="1"]:nth-of-type(2)
所有有效的CSS选择器都可以捕获您想要的内容


当然,类型(n)选择器的第n个可以附加到父级,作为选择具有特定列span的第n个的“过滤器”。

有一种方法可以使用第n个最后的子级选择器和行span的组合来实现这一点,但是如果你想让它能够处理任何组合,它看起来会有点复杂和笨拙

该算法有效地
tr:n最后一个子(x)th[rowspan>=x]

不幸的是,纯CSS不允许您编写此代码,因此您必须将其分解为多个部分

基本上,您知道,如果标题的最后一行中有任何内容,那么它将紧靠边界。要捕获这些元素,只需选择最后一个tr中的所有th元素:

tr:last-child th { /*your CSS*/ }
然后事情就变得复杂了。如果其他th元素的行跨度足够高,以至于它们跨越了其行和边框之间的其余行,则它们将接触底部边框。也就是说,如果它们位于倒数第二个
tr
,则它们需要2的行间距才能触底。如果它们位于最后第四行(在上面的示例中为第一行),则它们需要行跨度为4。因此,您可以这样做:

tr:nth-last-child(2) th[rowspan='2'],
tr:nth-last-child(3) th[rowspan='3'],
tr:nth-last-child(4) th[rowspan='4'] { /*Your CSS */ }
这并不漂亮,但如果您知道需要处理的行的最大数量,它就可以工作,因为很明显,如果您希望将它们保持为纯CSS,您需要单独列出它们

有洞-可能th的最后一排第二行的行跨度为3,这将触及底部,但我假设桌子的设计是正确的,这样就不会发生这种糟糕的事情。如果您愿意,您可以解释这一点,但这会增加很多复杂性,因为您需要添加最后第二行rowspan>=2(CSS不会在属性选择器中执行类似的数学运算,因此您必须单独列出所有>=2的值)

可能有一种方法可以使用类似于SASS或更少的东西(在JQuery中肯定很容易做到)使这个更干净,但据我所知,没有一种纯粹的CSS方法可以稍微清理一下。如果有人知道办法,请告诉我


更新:我已经创建了一个JSFIDLE的编辑,其他人开始演示我的意思

有一种方法可以使用第n个子项
选择器和rowspan的组合来实现这一点,但是如果您希望它能够处理任何组合,它看起来会有点复杂和笨拙

该算法有效地
tr:n最后一个子(x)th[rowspan>=x]

不幸的是,纯CSS不允许您编写此代码,因此您必须将其分解为多个部分

基本上,您知道,如果标题的最后一行中有任何内容,那么它将紧靠边界。要捕获这些元素,只需选择最后一个tr中的所有th元素:

tr:last-child th { /*your CSS*/ }
然后事情就变得复杂了。如果其他th元素的行跨度足够高,以至于它们跨越了其行和边框之间的其余行,则它们将接触底部边框。也就是说,如果它们位于倒数第二个
tr
,则它们需要2的行间距才能触底。如果它们位于最后第四行(在上面的示例中为第一行),则它们需要行跨度为4。因此,您可以这样做:

tr:nth-last-child(2) th[rowspan='2'],
tr:nth-last-child(3) th[rowspan='3'],
tr:nth-last-child(4) th[rowspan='4'] { /*Your CSS */ }
这并不漂亮,但如果您知道需要处理的行的最大数量,它就可以工作,因为很明显,如果您希望将它们保持为纯CSS,您需要单独列出它们

有洞-可能th的最后一排第二行的行跨度为3,这将触及底部,但我假设桌子的设计是正确的,这样就不会发生这种糟糕的事情。如果您愿意,您可以解释这一点,但这会增加很多复杂性,因为您需要添加最后第二行rowspan>=2(CSS不会在属性选择器中执行类似的数学运算,因此您必须单独列出所有>=2的值)

可能有一种方法可以使用类似于SASS或更少的东西(在JQuery中肯定很容易做到)使这个更干净,但据我所知,没有一种纯粹的CSS方法可以稍微清理一下。如果有人知道办法,请告诉我


更新:我已经创建了一个JSFIDLE的编辑,其他人开始演示我的意思

属性选择器?@Harry,我认为在这种情况下,使用
*[rowspan=“2”]
进行选择将不有效……不是直接的(在这个意义上,您的目标是触及
属性选择器底部的内容),但是对于特定的设置,您可以使用多个
thead-th:nth-child(..)
规则以这些元素为目标。如果你能发布你真实的html,我们可以提出更好的建议。@Gideon:为什么它会无效?你有什么具体的原因吗?我可以给出一个示例,它可以单独选择所需的元素。(我假设您所有的
th
都有
rowspan
colsp