2013-01-06 154 views
1

我想阻止这个CSS选择器被应用到页面中的所有元素应用CSS选择器:停止了一个元素

input { 
    color:red; 
} 

这将使<input>小号每一个类型的文本显示为红色,但我想在不更改此CSS规则的选择器或样式的情况下从中排除一个输入。元素应该具有默认样式(当页面上没有CSS时它是如何)。

+0

您将不得不重写这些样式或更改您的选择器以排除该元素。真的没有其他的方式来做到这一点。 – Blender

+0

@Kuf:我不确定你的意思。那它呢? – Blender

+0

@Blender抱歉,没有理解你的权利:) – Kuf

回答

4

您可以使用非选择器。由于输入字段应该有一个名字,你可以用它排除在外:

input:not([name="exludeme"]) { } 

这种方法不会在IE8和更早版本。为了支持ie7和ie8,你可以使用属性选择器。在这种情况下,你必须重新设置现场:

input[name="exludeme"] { /*add all your reset styles here*/ } 
+0

IE8和更早版本不支持:不是选择器。 –

+1

以及我认为仍然在2013年你的评论应该是你的答案的一部分 –

+0

@roXon你绝对是对的,我更新了答案。 –

3

添加一个ID为不同的一个,并将其应用只为他,以确保没有其他的CSS将覆盖您选择的CSS使用!important

HTML

<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div> 
<div class="box" id="diff"></div> 

CSS

div.box { 
    background-color:red; 
    width:50px; 
    height:50px; 
    position: relative; 
} 

#diff{ 
    background-color:black !important ; 
} 

检查:http://jsfiddle.net/y32Wv/

注:!important是可选的,要看里面的文件选择器的位置,但它可能是由其他的CSS规则覆盖的情况下(例如,如果有人改变的顺序css规则),它将停止正常工作,!important将阻止它发生。