2015-05-05 6 views
0

У меня есть нормализовать CSS для моего существующего веб-сайта, как показано нижеRemove нормализуют CSS для конкретного блока сНу

p { 
    font-family: Times new roman; 
} 

У меня есть новый HTML-компонент, который не может быть изменен, как показано ниже

.abc { 
    font-family:Helvetica; 
} 
<div class="abc"> 
    <p>abcdef</p> 
</div> 

Когда я интегрировать новый компонент HTML с моим существующим веб-сайтом абзац занимает Times new roman. Но мое требование - показать это как helvetica. У меня есть решающий вызов: я не могу изменить существующий веб-сайт и новый компонент css.

Я попытался написать новый CSS, как показано ниже, и она работала

.abc p { 
    font-family: Helvetica; 
} 

Но проблема в том, что всякий раз, когда HTML изменения компонента CSS я должен переписать мой CSS код. Есть ли у них какой-либо способ избежать существующего нормализовать css только для нового блока компонентов HTML.

+0

Вы не можете «удалить» правило CSS, к сожалению. Единственные два варианта, которые у вас есть, - «написать более конкретное правило CSS, которое достигает того, что вам нужно», или реструктурировать CSS, чтобы у вас был не только слепой класс «.abc». –

+1

Любой абзац внутри 'div.abc' должен использовать Helvetica? Вы пытались использовать '! Imporatnt'? – Samurai

ответ

1

Попробуйте это:

.abc, .abc * { 
    font-family: Helvetica !important; 
} 
+0

Ваше решение работает. Благодарю. Но если завтра шрифт был изменен на monospace, я должен переписать css. Это было огромное изменение, которое очень сложно. – aaviss

0

как об этом:

.abc p { 
    font-family: inherit !important; 
} 

Это вызовет пункт внутри .abc наследовать все, что семейство шрифтов было объявлено .abc, без объявления конкретного шрифта которые могут потребоваться изменить. Вы также можете адаптировать его к любому элементу, который может находиться внутри .abc.