该页面包含以下CSS:
input[type=text]
{
display: inline; padding: 7px; background-color: #f6f6f6; font-size: 12px; letter-spacing: 1px; border: 1px solid #aac7d1;
/* lots of other styles here... */
}
我有很多文字输入元素和以下内容:
<input type="text" id="txt1" />
我尝试通过jQuery将不同的样式应用于这个单独的文本框(txt1):
$('#txt1').removeClass().removeAttr('style').css({
'background-color': '#ff0000',
//lots of other styles here...
});
但是样式表中的那些样式无法通过这种方式从元素中删除。 css规则input[type=text]
不是自定义类,因此removeClass()
在这里不起作用,如果我是对的。
我想做的是;完全删除所有应用于元素txt1
的样式。除了获取所有计算样式的列表并将它们设置为空之外,还有某种方法可以做到吗?
答案 0 :(得分:2)
是否有某种方法可以做到这一点
如果选择器匹配,则无法停止应用于元素的规则。
你可以
!important
除了获取所有计算样式的列表并将其设置为空之外?
那不行。大多数属性都不接受空值,因此规则将无效并被忽略(从而导致先前的规则再次应用)。
答案 1 :(得分:0)
正如您在此链接中看到的那样:http://www.w3.org/TR/CSS2/cascade.html#specificity,所有选择器都具有特异性值。因此,如果您编写此类css规则:#txt1 {}
,则可以重置所有不必要的值。