不同顺序的CSS规则会导致不同的结果

不同顺序的CSS规则会导致不同的结果,css,background,mask,Css,Background,Mask,我只是看了一下CSS背景剪辑。这是一种用图像屏蔽文本的方法。(或者反过来说?^^)。无论如何,我认为CSS中语句的顺序不会影响结果,但是背景剪辑会影响结果 此效果的CSS通常如下所示: .text{ color: transparent; background: url(pic.ending); -webkit-background-clip: text; } 因此,这是下面小提琴中的第一个。 但当我将此顺序更改为以下内容时: .text_wrong{ -web

我只是看了一下CSS背景剪辑。这是一种用图像屏蔽文本的方法。(或者反过来说?^^)。无论如何,我认为CSS中语句的顺序不会影响结果,但是背景剪辑会影响结果

此效果的CSS通常如下所示:

.text{
    color: transparent;
    background: url(pic.ending);
    -webkit-background-clip: text;
}
因此,这是下面小提琴中的第一个
。 但当我将此顺序更改为以下内容时:

.text_wrong{
    -webkit-background-clip: text;
    color: transparent;
    background: url(pic.ending);
}
它不起作用。文本没有被屏蔽,背景出现在孔中。所以当背景剪辑在背景之前时会发生错误,对吗


为什么??你知道吗?对不起,我的英语不好。(这里是。)

这称为级联,CSS的ulimate目标是表示级联中最后声明的项

例如,让我们假设下面是样式表中的CSS声明

div{height:15px;}

div{height:30px;}

div{height:20px;}
因此div将把高度设置为
20px
,因为这是最后一个声明的规则,它将覆盖前面声明的所有其他规则


希望这能解决您的查询。

这称为级联,CSS的ulimate目标是表示级联中最后声明的项

例如,让我们假设下面是样式表中的CSS声明

div{height:15px;}

div{height:30px;}

div{height:20px;}
因此div将把高度设置为
20px
,因为这是最后一个声明的规则,它将覆盖前面声明的所有其他规则


希望这能解决您的问题。

根据w3c规范,
背景剪辑的值
text
不是规范中列出的值。因此,支持可能有问题

确定背景绘制区域,该区域确定背景绘制区域 在其中绘制背景。属性的语法是 给予

=边框框|填充框|内容框


根据w3c规范,
背景剪辑的
文本
值不是规范中列出的值。因此,支持可能有问题

确定背景绘制区域,该区域确定背景绘制区域 在其中绘制背景。属性的语法是 给予

=边框框|填充框|内容框


background
是背景属性的简写符号。这将覆盖先前制定的所有其他后台规则。即使
-webkit background clip
有供应商前缀,它仍然是一个background属性。在第二个示例中,当您使用速记符号设置背景属性时,它会被覆盖

要使示例有效,可以使用
背景图像
而不是
背景

示例

/* sets a single property */
background-color: red;
/* overwrites all single properties */
background: no-repeat;
演示


background
是背景属性的简写符号。这将覆盖先前制定的所有其他后台规则。即使
-webkit background clip
有供应商前缀,它仍然是一个background属性。在第二个示例中,当您使用速记符号设置背景属性时,它会被覆盖

要使示例有效,可以使用
背景图像
而不是
背景

示例

/* sets a single property */
background-color: red;
/* overwrites all single properties */
background: no-repeat;
演示


-1因为,虽然这并没有错,但并不完全相关@InsertUserName此处的答案说明了使用
后台
快捷方式时实际发生的情况。这也有过度简化级联的风险:完全掌握正在发生的事情是值得的。这不是cascade的一个例子,只是超越了先前宣布的风格。Thnx-@CherryFlavourPez供参考。但是OP已经明确地将他的代码放在他已经明确地修改了属性规则的级联的地方,这导致了他的问题。因此,我将坚持我的答案,如果它真的值得纠正,我愿意纠正。但突出的一点不是,写
div{height:15px;}
然后再写
div{height:20px;}
会导致
div
的结果是20px高(即使对一个几乎没有CSS知识的人来说也是显而易见的)。相反,某些速记属性将以一种不太透明的方式超越先前声明的样式(
background
是一个明显的例子,但也有其他属性,如
font
)。同意-@CherryFlavourPez OP改变了级联顺序,使其无法正常工作,所以cascade是他必须保留的东西,但同时,您上面提到的某些CSS属性需要以一种非常透明的方式声明,以便准确地工作:)-1因为,虽然这没有错,但它不是完全相关的@InsertUserName此处的答案说明了使用
后台
快捷方式时实际发生的情况。这也有过度简化级联的风险:完全掌握正在发生的事情是值得的。这不是cascade的一个例子,只是超越了先前宣布的风格。Thnx-@CherryFlavourPez供参考。但是OP已经明确地将他的代码放在他已经明确地修改了属性规则的级联的地方,这导致了他的问题。因此,我将坚持我的答案,如果它真的值得纠正,我愿意纠正。但突出的一点不是,写
div{height:15px;}
然后再写
div{height:20px;}
会导致
div
的结果是20px高(即使对一个几乎没有CSS知识的人来说也是显而易见的)。相反,某些速记属性将以一种不太透明的方式凌驾于先前声明的样式之上(
background
是一个明显的例子,但还有其他一些属性,如
font
)。同意-@CherryFlavourPez OP改变了级联顺序,但这并没有使他的东西起作用