代码之家  ›  专栏  ›  技术社区  ›  MeqDotNet

按ID删除元素的CSS样式

  •  0
  • MeqDotNet  · 技术社区  · 15 年前

    如何禁用已按元素名称使用css设置样式的元素的样式,我不能通过仅在css中确定类名来创建相同的样式,而在html代码中没有显示哪个样式属性?

    5 回复  |  直到 15 年前
        1
  •  10
  •   cletus    15 年前

    你可以试试:

    $("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");
    });
    

    问题解决了。

    因此,我不能对您的方法发表评论,因为您没有提供足够的细节,但根据我的经验,问题是“如何删除样式?”是一面红旗。

        2
  •  1
  •   Guffa    15 年前

    不能禁用已设置的样式,但可以覆盖它们。这个 inherit 值可用于恢复默认继承的样式的行为。例子:

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

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

        3
  •  1
  •   meder omuraliev    15 年前

    不能禁用样式,只能用特定性覆盖该样式。如果你一定要,你可以依靠!重要指示:

    #el { background:red !important; }
    

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

        4
  •  0
  •   Ryan Schumacher    15 年前

    您可以通过如下方式重置元素样式,具体取决于标记的标准:

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

    可以重命名元素ID:

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

    这是我的最佳猜测。

        5
  •  0
  •   cp3    15 年前

    几周前我遇到了这个问题。每个元素都有一个默认值。只需将其重写为默认值。

    也就是说,宽度和高度的默认值是自动的。但并非所有的都是自动的。溢出的默认值是可见的。