2009-10-18 2 views
0

как отключить стиль для элемента уже в стиле css по имени элемента, и я не могу сделать тот же самый стиль, произнеся имя класса в css просто #ElementName, атрибут стиля которого не показано на html-коде?удаление стиля css для элемента по ID

+4

Я не понимаю ваш вопрос. Можете ли вы опубликовать краткий пример некоторого кода, который показывает проблему, которую вы описываете? –

+4

Вы непонятны. – slikts

+0

Мой лучший перевод догадки: «Как удалить стиль из элемента, который был стилизован в CSS (document ?, style tag?). Однако я не работаю, когда я устанавливаю стиль с помощью класса элемента. кажется, работает только тогда, когда я использую идентификатор элемента (например, #ElementName).« –

ответ

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 Я думаю, что вы рассмотрели все сценарии здесь. – bendewey

+0

+1 для хорошего ответа на путаный вопрос – pkaeding

+0

Отсутствие скобки в первом блоке кода. –

1

Вы не можете отключить установленные стили, но вы можете их переопределить. Значение inherit может использоваться для восстановления поведения стилей, унаследованных по умолчанию. Пример:

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

Любой элемент DIV получит красный текст, за исключением тех, с классом = «исключением», который будет наследовать цвет текста от их родителей.

1

Вы не можете отключить стиль, вы можете только переопределить этот стиль со спецификой. Если вы абсолютно необходимо, вы можете рассчитывать на важную директиву:

#el { background:red !important; } 

В противном случае для бог знает что, если вы не можете/не имеют доступа к CSS, то вы можете сделать $('#foo').css('background', 'red') или аналогичный.

0

Вы можете сбросить стиль элемента в зависимости от стандарта тега через что-то вроде этого:

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

Вы можете переименовать элемент ID:

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

Это мой лучший догадки.

0

Я столкнулся с этим вопросом пару недель назад. Каждый элемент имеет значение по умолчанию. просто переопределите это значение по умолчанию.

ie. значение ширины и высоты по умолчанию - авто. не все автоматически. По умолчанию отображается переполнение.