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

Если у вас

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

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

предпочтительно использовать что-то подобное этому:

div { display: block !important; }

6 ответов


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

.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>

Fiddled

это поведение описано в спецификациях 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. И больше IDs бьют меньше. (и вы думали, что нет причин для двух идентификаторов в селекторе.) Если же ID рассчитывать...

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

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

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