2012-06-22 4 views
46

Если выМогу ли я переопределить встроенный!

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

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

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

div { display: block !important; } 
+2

Для переопределения 'display: block! Important',' visibility: hidden; 'будет работать. Во всяком случае, не связанный с вопросом. Но подумал поделиться. – SkyBuzz

ответ

65

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

.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

Такое поведение описывается in W3 specs, в котором говорится, что !important декларации не изменяют специфику, а скорее имеет преимущество над «нормальными» объявлениями.

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

+3

OP четко заявляет 'inline! Important' - пожалуйста, прочитайте правильно! Тем не менее +1 за хороший ответ. – Christoph

+1

@ Кристоф: но ответы так же четко указывают, что «вы не можете переопределить встроенный CSS», «inline имеет более высокий приоритет» ... Это неверно, поэтому оригинальная формулировка моего ответа.Я не ожидаю, что все отредактируют свои ответы, чтобы исправить ошибку. –

+2

В вашем ответе ничего не говорится об переопределении встроенных стилей '! Important'. Вопрос задает вопрос о переопределении только встроенных стилей '! Important'. – BoltClock

19

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

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

+1

Невозможно использовать javascript, это для писем. –

5

Вы не можете переопределить встроенный стиль, имеющий !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;.

5

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

+0

спасибо за редактирование, теперь это правильно –

1

Это простое решение для jQuery.

$(document).ready(function() { 
$('div').css('display','block'); 
}) 
Смежные вопросы