Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.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 - Fatal编程技术网

请解释一下这个css

请解释一下这个css,css,Css,我正在开发一个用于在IE8中打印的css,因为我没有高级css选择器() 我需要修改表中的某些列(例如,使第8列变为红色,第9列变长,第10列变短…ecc) 问题是我是否使用 td+td+td{ /*instead of td:nth-child(3) on modern browsers*/ set something... } 从第三个到最后一个的所有td都有“设置内容” 所以为了解决这个问题,我必须 td+td+td+td{ unset something } 所以我修复了它,但不

我正在开发一个用于在IE8中打印的css,因为我没有高级css选择器()

我需要修改表中的某些列(例如,使第8列变为红色,第9列变长,第10列变短…ecc)

问题是我是否使用

td+td+td{ /*instead of td:nth-child(3) on modern browsers*/
 set something...
}
从第三个到最后一个的所有td都有“设置内容”

所以为了解决这个问题,我必须

td+td+td+td{
 unset something
}

所以我修复了它,但不知道它为什么会这样做?

为什么不直接在列上放置类名并为它们设置样式?它消除了多版本的黑客行为。

为什么不直接在列上添加类名并设置样式呢?它消除了多版本攻击。

a+b
表示:“如果前面有
a
,请选择
b
”。
td+td+td
表示:如果前面有2个
s,则选择一个
td

(见图)
每个X由
td+td+td
选择
每个Y由
td+td+td+td
选择
要选择第三个同级,必须组合两个选择器

<td>  1        1                     = default
<td>  2 1      2 1                   = default
<td>  X 2 1    3 2 1   <--- X        = style X
<td>    X 2 1  Y 3 2   <--- X and Y  = style X, but reset to default by Y
<td>      X 2    Y 3   <--- X and Y  = style X, but reset to default by Y
<td>        X      Y   <--- X and Y  = style X, but reset to default by Y
1 1=默认值
2 1=默认值
X 2 1 3 2 1
a+b
表示:“如果前面有
a
,则选择
b
”。
td+td+td
表示:如果前面有2个
s,则选择一个
td

(见图)
每个X由
td+td+td
选择
每个Y由
td+td+td+td
选择
要选择第三个同级,必须组合两个选择器

<td>  1        1                     = default
<td>  2 1      2 1                   = default
<td>  X 2 1    3 2 1   <--- X        = style X
<td>    X 2 1  Y 3 2   <--- X and Y  = style X, but reset to default by Y
<td>      X 2    Y 3   <--- X and Y  = style X, but reset to default by Y
<td>        X      Y   <--- X and Y  = style X, but reset to default by Y
1 1=默认值
2 1=默认值

X 2 1 3 2 1
+
表示相邻选择器

td+td{}
通常意味着,如果一个
td
前面有另一个
td
则应用特定规则

还有一个例子:

a+p{}
通常意味着,如果
p
a
之后,则应用特定规则

因此,您正在使用的样式表

td+td+td
将对第三个元素之后的每个
td
应用样式。这可能有点复杂,需要弄清楚。让我们看一个带有

上述规则将适用于两个不同的集合

  • 第一个,从
    1
    3
    的相邻兄弟匹配
    td+td+td

  • 第二个,从
    2
    4
    的相邻兄弟姐妹也匹配
    td+td+td

  • 因此,最后,
    3
    中的所有选择器都会得到样式

    若要取消此效果,请在样式表上重置添加第四个选择器的规则。 i、 e

    td+td+td+td{
    /*取消效果
    这将捕获-4并应用重置规则*/
    }
    
    希望这能解释这一点


    进一步阅读

  • +
    表示相邻的选择器

    td+td{}
    通常意味着,如果一个
    td
    前面有另一个
    td
    则应用特定规则

    还有一个例子:

    a+p{}
    通常意味着,如果
    p
    a
    之后,则应用特定规则

    因此,您正在使用的样式表

    td+td+td
    将对第三个元素之后的每个
    td
    应用样式。这可能有点复杂,需要弄清楚。让我们看一个带有

    上述规则将适用于两个不同的集合

  • 第一个,从
    1
    3
    的相邻兄弟匹配
    td+td+td

  • 第二个,从
    2
    4
    的相邻兄弟姐妹也匹配
    td+td+td

  • 因此,最后,
    3
    中的所有选择器都会得到样式

    若要取消此效果,请在样式表上重置添加第四个选择器的规则。 i、 e

    td+td+td+td{
    /*取消效果
    这将捕获-4并应用重置规则*/
    }
    
    希望这能解释这一点


    进一步阅读

  • 对不起,我不明白picture@max4ever这些数字表明,每个由X标记的元素都有两个前辈,每个由Y标记的元素都有三个前辈。在右边,我标记了选择器的结果。现在,你明白这张照片了吗?对不起,我不明白picture@max4ever这些数字表明,每个由X标记的元素都有两个前辈,每个由Y标记的元素都有三个前辈。在右边,我标记了选择器的结果。现在,你明白图片了吗?
    td + td + td {
        /* apply something */
    }
    
    td + td+ td + td {
      /* cancel the effect
      This will catch <td>-4</td> and apply the reset rule */
    }