如何手动将特定样式表中的样式应用于元素?
我有一个表单与各种样式表相关联。我有两个样式表,其中有select标签的样式。所以当我连接两个样式表时,它都会发生冲突。如何手动将特定样式表中的样式应用于元素?
例如
我有style1.css和style2.css其中包含选择标签样式。我有两个选择标签与ids select1和select2。
我只想要style1.css中的样式应用于select1和从style2.css到select2的样式。我该怎么做 ?
我无法指定这些特定ID的样式,因为它也会影响其他选择标签。
如何让不同样式表的样式仅在特定位置工作?
您可以使用CSS3的:not()
选择器。例如,在style2.css
,你可以这样写:
select:not(#select1) {
// styling here will be applied to all selects except select1
}
但在现实中你应该把所有的造型为一个CSS文件中select
标签。这样你可以更容易地控制冲突。
非常好的解决方案,只有一个问题:IE8及更早版本不支持':not()'选择器。 IE9和其他浏览器支持它。 – psur 2011-12-29 08:51:01
CSS以这样的方式工作,即上次设置是最重要的。所以,你可以在最后的style2.css
您可以定义样式select1
第一链接style1.css
,然后style2.css
和:
#select1
{
/* styles */
}
它不会影响任何其他元素,只select1
。
但通常你应该在一个样式表中合并样式。
您可以将style1 id的类名定义为class="style-one"
,然后通过将!important
标记定义为元素样式来定义样式。 是这样的:
.style-one{border:none !important;}
而且你可以在任何你正在使用的样式表,据我所知,这个类定义不改变顺序:)
,它不可能与客户端技术 - 一旦样式表被加载,它就不在我们手中。但是,如果您有可用的服务器端语言,则可以“合并”这些样式表并根据需要提供一个最终样式表。 – 2011-12-29 08:25:42
如果不更改任一样式表中的CSS选择器,这是不可能的。 – Sjoerd 2011-12-29 08:26:01