是否可以用另一个css类覆盖一个css类
我认为这个问题只与css有关。。。但我会给你一些背景: 我正在使用zk框架,我的zul页面中有一些组合框。。。ZK呈现其组件,并将其转换为具有一些预定义样式(css类)的html组件。。。我可以覆盖那些样式。。。但是我想用另一个css类覆盖整个css类,这样我就可以把我的css类只放在我想改变其样式的组件中 以下是如何创建组合框: 如您所见,它被转换为一个是否可以用另一个css类覆盖一个css类,css,zk,Css,Zk,我认为这个问题只与css有关。。。但我会给你一些背景: 我正在使用zk框架,我的zul页面中有一些组合框。。。ZK呈现其组件,并将其转换为具有一些预定义样式(css类)的html组件。。。我可以覆盖那些样式。。。但是我想用另一个css类覆盖整个css类,这样我就可以把我的css类只放在我想改变其样式的组件中 以下是如何创建组合框: 如您所见,它被转换为一个输入,带有一个名为z-combobox-input的css类 如果我直接覆盖该类,如下所示: .z-combobox-input{
输入
,带有一个名为z-combobox-input的css类
如果我直接覆盖该类,如下所示:
.z-combobox-input{
border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff
}
.class-original{
//some styles in here
}
.class-overriding{
.class-original{
//new styles in here
}
}
<combobox id="combo2" style="border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff"/>
它将影响页面中的每个组合框,因此我得到:
所以我想知道是否存在这样一种方法:
.z-combobox-input{
border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff
}
.class-original{
//some styles in here
}
.class-overriding{
.class-original{
//new styles in here
}
}
<combobox id="combo2" style="border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff"/>
因此,我可以将.class重写仅放在需要更改的组件中,而不是放在同一类型的每个组件中
<combobox id="newCombo" sclass="class-overriding" />
但我不能特别改变边界,就像这样:
.z-combobox-input{
border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff
}
.class-original{
//some styles in here
}
.class-overriding{
.class-original{
//new styles in here
}
}
<combobox id="combo2" style="border:1px solid #000;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-o-border-radius:3px 0 0 3px;-ms-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;margin:0;padding:4px 5px;line-height:14px;background:#fff"/>
它将随机id放入html组件
一些文件:
当您可以让ZK将元素渲染为
<input class="class-original class-overriding" />
这将覆盖.class original
中的背景色属性。所有未覆盖的属性都将取自.class original
-CSS
编辑:刚刚检查了ZK实际渲染的内容。它是(使用您在小提琴中提供的类名)
第一个表示“具有两个类(z-combobox
和另一个类
)的所有内容”,第二个表示“具有类z-combobox-input的所有内容”
,当您可以让ZK将元素渲染为
<input class="class-original class-overriding" />
这将覆盖.class original
中的背景色
属性。所有未覆盖的属性将取自.class original
-CSS
编辑:刚刚检查了ZK实际呈现的内容。它是(使用您在小提琴中提供的类名)
第一个表示“两个类的所有内容(z-combobox
和另一个类
)”,第二个表示所有带有classz-combobox-input
的类,它位于两个classz-combobox
和另一个class的类的内部,更新:根据您的需要,您可以使用sclass
属性向任何元素添加类
所以,使用我在你截图中看到的代码
…您可以使用以下选择器为您放置的类指定规则:
.v-combobox.whatever.z-combobox-input{
边框:1px实心#000;
边界半径:3px 0 3px;
边距:0;填充:4px 5px;
线高:14px;
背景:#fff;
}
有关更多信息,请使用
根据本指南,当您要添加应用于元素的默认样式时,应使用sclass
;当您要重置默认样式时,应使用zclass
属性(这意味着仅应用自定义类中定义的样式,而不应用该元素的默认样式)
初始答案:
这是CSS
中最重要的原则,它被称为特异性
学习CSS
意味着学习如何使用选择器及其特殊性,以便有选择地将规则应用于某些元素而不是其他元素。这是CSS的典型用途,而且完全可能
通过元素的id引用元素将更强大(从而覆盖)为其任何类指定的任何规则
为了理解特殊性,我建议将其作为一个起点。您还应该在您选择的搜索引擎中搜索特定性计算器
为了能够利用你所学到的关于特异性的一切,你需要理解和理解
对于特定的[:)]情况,您可能希望使用元素的id
作为选择器,仅将规则应用于该元素。给定第一个示例中的id
,这将起作用:
#vXgV3实数{
/*此处的规则将覆盖.z-combobox-input的规则
*对于id为=“vXgV3 real”的元素,并且仅针对该元素
*/
边框:1px实心#000;
边界半径:3px 0 3px;
边距:0;填充:4px 5px;
线高:14px;
背景:#fff;
}
更新:根据需要,您可以使用sclass
属性向任何元素添加类
所以,使用我在你截图中看到的代码
…您可以使用以下选择器为您放置的类指定规则:
.v-combobox.whatever.z-combobox-input{
边框:1px实心#000;
边界半径:3px 0 3px;
边距:0;填充:4px 5px;
线高:14px;
背景:#fff;
}
有关更多信息,请使用
根据本指南,当您要添加应用于元素的默认样式时,应使用sclass
;当您要重置默认样式时,应使用zclass
属性(这意味着仅应用自定义类中定义的样式,而不应用该元素的默认样式)
初始答案:
这是CSS
中最重要的原则,它被称为特异性
学习CSS
意味着学习如何使用选择器及其特殊性,以便有选择地将规则应用于某些元素而不是其他元素。这是CSS的典型用途,而且完全可能
通过元素id引用元素将更强大(因此会覆盖)任何rul