Що !important
означає CSS?
Чи він доступний у CSS 2? CSS 3?
Де це підтримується? Усі сучасні браузери?
Що !important
означає CSS?
Чи він доступний у CSS 2? CSS 3?
Де це підтримується? Усі сучасні браузери?
Відповіді:
Це означає, по суті, те, що він говорить; що "це важливо, ігноруйте наступні правила та будь-які звичні проблеми, застосовуйте це правило!"
У звичайному використанні правило, визначене у зовнішній таблиці стилів, перекривається стилем, визначеним у head
документі, який, у свою чергу, перекручується стилістичним стилем у самому елементі (передбачаючи рівну специфіку селекторів). Визначення правила з !important
"атрибутом" (?) Відкидає звичайні занепокоєння щодо "пізнішого" правила, що перекриває "попередні".
Крім того, як правило, більш конкретне правило буде замінено менш конкретне правило. Тому:
a {
/* css */
}
Зазвичай перераховується:
body div #elementID ul li a {
/* css */
}
Оскільки останній селектор є більш конкретним (і він, як правило, не має значення, де знаходиться більш конкретний селектор (у head
або зовнішньому аркуші стилів), він все одно перекриє менш специфічний селектор (атрибути стильового стилю завжди будуть) перевизначте селектор "більше" або "менш", оскільки він завжди більш конкретний.
Якщо, однак, ви додасте !important
до CSS-декларації менш конкретного селектора, воно матиме пріоритет.
Використання !important
має свої цілі (хоча я намагаюся їх думати), але це дуже схоже на використання ядерного вибуху, щоб зупинити лисиць, які вбивають ваших курчат; так, лисиці будуть вбиті, але так будуть і кури. І сусідство.
Це також робить налагодження вашого CSS кошмаром (з особистого, емпіричного, досвіду).
important!
(важливо НЕ)
Важливе правило - це спосіб зробити ваш CSS-каскад, але також мати правила, які, на ваш погляд, є найважливішими завжди. Правило, яке має важливе властивість!, Завжди буде застосовуватися незалежно від того, де це правило відображається в документі CSS.
Отже, якщо у вас є наступне:
.class {
color:red !important;
}
.outerClass .class {
color:blue;
}
правило з важливим буде застосованим (не рахуючи конкретності )
Я вважаю, що !important
з'явився в CSS1, тому кожен браузер підтримує його (IE4 до IE6 з частковою реалізацією, IE7 + повна)
Крім того, це не те, що ви не хочете використовувати досить часто, тому що якщо ви працюєте з іншими людьми, ви можете змінювати інші властивості.
!
символ символу НЕ в деяких мовах, але зараз зрозуміліше.
!important
. CSS досить відрізняється від інших мов, що легко забути, як користуватися певними речами.
important!
, а може IMPORTANT!
, і не !important
. Цікаво, чи хтось (хто може це прочитати) знає, чому вони визначили це з пунктуацією напроти? Очевидно, що зараз занадто пізно змінити це.
!important
є частиною CSS1.
Браузери, що підтримують його: IE5.5 +, Firefox 1+, Safari 3+, Chrome 1+.
Це означає, щось на кшталт:
Використовуйте мене, якщо навколо нічого іншого важливого немає!
Неможливо сказати це краще.
!important
не обмежується лише Safari 3+; він підтримує його з самого початку, як і всі інші браузери, які не входять до IE. IE розуміє це від версії 4 і далі, але підтримує його лише без помилок, починаючи з версії 7.
Він використовується для впливу на сортування в каскаді CSS, коли проводиться сортування за походженням. Це не має нічого спільного з специфікою, про яку йдеться в інших відповідях.
Ось пріоритет від найнижчого до найвищого:
Після цього відбувається специфіка правил, які все ще мають палець у пирізі.
Список літератури:
!important
- це модифікатор для каскадного розробника замовлення.mozilla.org/ en-US/docs/Web/CSS/Cascade (див. Таблицю для посилання).
Він змінює правила перегляду пріоритету css-каскадів. Дивіться специфікацію CSS2 .