Как перезаписать встроенные стили с помощью CSS
Изучая CSS, часто люди думают что встроенные стили - это самая сильная форма стилей, которую нельзя изменить с помощью простого CSS.
Что ж, на самом деле есть довольно простой трюк, чтобы нарушить это правило!
Допустим, мы хотим изменить цвет текста для этого div:
<div style="color: red;"> This text is red! </div>
Это можно сделать, используя следующий синтаксис:
div[style] { color: blue !important; }
И вуаля!
Но подождите, что произойдет, если во встроенном стиле будет указано !important?
div[style] { color: blue !important; }
<div style="color: red !important;"> This text is red! </div>
На самом деле, для этого есть еще один необычный трюк:
@keyframes forceColor { from { color: blue; } to { color: blue; } } div { animation: 1s linear infinite forceColor; }
Использование анимации дает необычные результаты. Похоже, браузеры отдают предпочтение результатам кадров анимации над встроенными стилями и даже в соответствии с жестким правилом !important.
Очевидно, что использование встроенных стилей и !important не рекомендуется, но иногда мы используем сторонние инструменты, которые мы не всегда можем контролировать. Эти уловки - выход из таких сложных ситуаций.