按ID删除元素的css样式

时间:2009-10-18 01:31:02

标签: jquery css

如何禁用已经使用css按元素名称设置样式的元素的样式,并且我不能通过在css中使用#ElementName在html代码中没有显示样式属性的类名来制作相同的样式?

5 个答案:

答案 0 :(得分:10)

你可以尝试:

$("selector").removeAttr("style");

但我的问题是:你为什么要删除CSS样式?通常这表明你没有做好任何事情。像有些人会写这样的代码:

$("selector").hover(function() {
  $(this).css("background", "red");
}, function() {
  // ???
});

问题当然是你不知道如何设置背景以便将其重置为正常。这就是你应该使用类的原因:

div.highlight { background: red; }

使用:

$("selector").hover(function() {
  $(this).addClass("highlight");
}, function() {
  $(this).removeClass("highlight");
});

问题解决了。

所以我不能评论你的方法,因为你没有提供足够的细节,但在我的经验问题,如“我如何删除一个风格?”是一面红旗。

答案 1 :(得分:1)

您无法禁用已设置的样式,但可以覆盖它们。 inherit值可用于恢复默认继承的样式的行为。例如:

div { color: red; }
div .exception { color: inherit; }

任何div元素都将获得红色文本,但class =“exception”除外,它将从父级继承文本颜色。

答案 2 :(得分:1)

您无法禁用样式,只能以特异性覆盖该样式。如果你绝对必须,你可以依赖!important指令:

#el { background:red !important; }

否则上帝知道如果你不能/不能访问CSS那么你可以$('#foo').css('background', 'red')或类似的。

答案 3 :(得分:0)

您可以根据标签的标准重置元素样式,如下所示:

$('#ElementName').css({
  'position': 'relative',
  'display': 'box',
  'with': 'auto',
  'height': 'auto',
  'color': '#FFFFFF'
});

您可以重命名元素ID:

$('#ElementName').attr('id', 'ElementName2');

这是我最好的猜测。

答案 4 :(得分:0)

几个星期前我遇到了这个问题。每个元素都有一个默认值。只需将其覆盖为该默认值。

即。 width和height的默认值为auto。不是所有都是自动的。溢出的默认值是可见的。