Могу ли я переопределить inline!важно?


Если у вас

<div style="display: none !important;"></div>

есть ли способ переопределить это в таблице стилей, чтобы сделать его отображаемым?

желательно использовать что-то вроде этого:

div { display: block !important; }
6 52

6 ответов:

позвольте мне начать с того, что как правило, встроенные стили можете быть переопределен:

.override {color:red !important;}​

<p style="color:blue;">I will be blue</p>
<p style="color:blue;" class="override">But I will be red</p>

повозился

это поведение описано в спецификациях W3, где указано, что !important объявления не меняют специфику, а скорее приоритет за "нормальной" декларации.

Это, как говорится, когда конфликтующие правила обоих !important флаг, специфичность диктует, что применяется встроенное правило-это означает, что для сценария OP нет способа переопределить inline!important.

вы не можете переопределить встроенный CSS, если он был !important. Он имеет более высокий приоритет, чем стиль во внешнем файле CSS.

однако, если вы хотите изменить некоторые действия позже, вы можете использовать немного JavaScript.

вы не можете переопределить встроенный стиль, имеющий !important. Первое предпочтение-это встроенный стиль.

например: у нас есть класс

.styleT{float:left;padding-left:4px;width:90px;}

и в jsp

<div class="styleT" id="inputT" style="padding-left:0px;">

здесь не берет padding-left:4px;. он принимает класс styleT кроме отступа-слева: 4px;. Там будет padding-left:0px;.

вы не можете переопределить встроенный CSS, имеющего !important, потому что он имеет более высокий приоритет, но, используя JavaScript, вы можете достичь того, чего вы хотите.

вот простое решение jQuery.

$(document).ready(function() { 
$('div').css('display','block');
})

правила приоритета, когда два свойства CSS применяются к одному узлу:

  • !important ударов не-!important. Если поровну !важный. ,..

  • style атрибут бьет css в файле. Если оба находятся в файлах CSS...

  • идентификатор в селекторе CSS не превосходит ID. И больше идентификаторов бьют меньше. (и вы думали, что не было никакой причины для двух идентификаторов в селекторе.) Если же количество ID...

  • классы, или атрибуты типа [name] в селекторе, подсчитайте их; больше ударов меньше. Если все это одно и то же...

  • имена тегов, как span или input, больше ударов меньше.

Итак, вы видите inline !important является высшим приоритетом.