Zasadniczo oznacza to, co mówi; że „jest to ważne, zignoruj kolejne reguły i wszelkie zwykłe problemy ze specyfiką, zastosuj tę regułę!”
W normalnym użyciu reguła zdefiniowana w zewnętrznym arkuszu stylów jest nadpisywana przez styl zdefiniowany w headdokumencie, który z kolei jest nadpisywany przez styl liniowy w samym elemencie (przy założeniu jednakowej specyficzności selektorów). Zdefiniowanie reguły za pomocą !important„atrybutu” (?) Odrzuca normalne obawy dotyczące reguły „późniejszej” nadrzędnej wobec „wcześniejszej”.
Zwykle bardziej szczegółowa reguła zastąpi mniej szczegółową regułę. Więc:
a {/* css */}
Jest zwykle uchylany przez:
body div #elementID ul li a {/* css */}
Ponieważ ten drugi selektor jest bardziej szczegółowy (i zwykle nie ma znaczenia, gdzie znajduje się bardziej szczegółowy selektor (w headzewnętrznym arkuszu stylów), nadal będzie zastępował mniej szczegółowy selektor (atrybuty stylu w linii zawsze będą nadpisuje selektor „więcej-” lub „mniej-”, ponieważ jest on zawsze bardziej szczegółowy.
Jeśli jednak dodasz !importantdo mniej szczegółowej deklaracji selektora CSS, będzie on miał priorytet.
Używanie !importantma swoje cele (choć staram się o nich myśleć), ale to tak jak używanie wybuchu nuklearnego, aby powstrzymać lisy przed zabijaniem kurczaków; tak, lisy zostaną zabite, ale kurczaki też. I okolica.
Dzięki temu debugowanie CSS jest koszmarem (osobistym, empirycznym, doświadczeniem).
przynajmniej nie jest to sarkastyczne i mówi important!(ważne NIE)
użytkownik3553260,
2
Napisałeś: „W normalnym użyciu reguła zdefiniowana w zewnętrznym arkuszu stylów jest zastępowana przez styl zdefiniowany w nagłówku dokumentu”. To jest złe.
jlguenego
130
Ważna reguła to sposób na kaskadę CSS, ale zawsze należy stosować zasady, które Twoim zdaniem są najważniejsze. Reguła, która ma właściwość! Ważne, będzie zawsze stosowana bez względu na to, gdzie reguła pojawia się w dokumencie CSS.
Zamieszanie zdarza się, ponieważ !jest symbolem NIE w niektórych językach, ale teraz jest wyraźniejsze.
Si8
2
Szczególnie się cieszę, że dołączyłeś składnię !important. CSS różni się na tyle od innych języków, że łatwo zapomnieć, jak korzystać z niektórych rzeczy.
blainarmstrong,
3
@ Si8 - Tak, z powodu tego zamieszania zawsze myślałem, że „oni” powinni go zdefiniować jako important!, a może IMPORTANT!raczej niż !important. Zastanawiam się, czy ktokolwiek (kto mógłby to przeczytać) wie, dlaczego zdefiniował to interpunkcją z przodu? Oczywiście jest już za późno, aby to zmienić.
!importantnie ogranicza się tylko do Safari 3+; obsługuje go od samego początku, jak wszystkie inne przeglądarki inne niż IE. IE rozumie to od wersji 4, ale obsługuje ją
bezbłędnie,
12
Służy do wywierania wpływu na sortowanie w kaskadzie CSS po dokonaniu sortowania według pochodzenia. Nie ma to nic wspólnego ze specyfiką, jak podano tutaj w innych odpowiedziach.
Odpowiedzi:
Zasadniczo oznacza to, co mówi; że „jest to ważne, zignoruj kolejne reguły i wszelkie zwykłe problemy ze specyfiką, zastosuj tę regułę!”
W normalnym użyciu reguła zdefiniowana w zewnętrznym arkuszu stylów jest nadpisywana przez styl zdefiniowany w
head
dokumencie, który z kolei jest nadpisywany przez styl liniowy w samym elemencie (przy założeniu jednakowej specyficzności selektorów). Zdefiniowanie reguły za pomocą!important
„atrybutu” (?) Odrzuca normalne obawy dotyczące reguły „późniejszej” nadrzędnej wobec „wcześniejszej”.Zwykle bardziej szczegółowa reguła zastąpi mniej szczegółową regułę. Więc:
Jest zwykle uchylany przez:
Ponieważ ten drugi selektor jest bardziej szczegółowy (i zwykle nie ma znaczenia, gdzie znajduje się bardziej szczegółowy selektor (w
head
zewnętrznym arkuszu stylów), nadal będzie zastępował mniej szczegółowy selektor (atrybuty stylu w linii zawsze będą nadpisuje selektor „więcej-” lub „mniej-”, ponieważ jest on zawsze bardziej szczegółowy.Jeśli jednak dodasz
!important
do mniej szczegółowej deklaracji selektora CSS, będzie on miał priorytet.Używanie
!important
ma swoje cele (choć staram się o nich myśleć), ale to tak jak używanie wybuchu nuklearnego, aby powstrzymać lisy przed zabijaniem kurczaków; tak, lisy zostaną zabite, ale kurczaki też. I okolica.Dzięki temu debugowanie CSS jest koszmarem (osobistym, empirycznym, doświadczeniem).
źródło
important!
(ważne NIE)Jeśli masz następujące elementy:
reguła z ważną będzie tą zastosowaną (nie licząc specyficzności )
!important
Wydaje mi się, że pojawił się w CSS1, więc każda przeglądarka go obsługuje (IE4 do IE6 z częściową implementacją, IE7 + pełna)Ponadto jest to coś, czego nie chcesz często używać, ponieważ jeśli pracujesz z innymi ludźmi, możesz zastąpić inne właściwości.
źródło
!
jest symbolem NIE w niektórych językach, ale teraz jest wyraźniejsze.!important
. CSS różni się na tyle od innych języków, że łatwo zapomnieć, jak korzystać z niektórych rzeczy.important!
, a możeIMPORTANT!
raczej niż!important
. Zastanawiam się, czy ktokolwiek (kto mógłby to przeczytać) wie, dlaczego zdefiniował to interpunkcją z przodu? Oczywiście jest już za późno, aby to zmienić.!important
jest częścią CSS1.Obsługujące go przeglądarki: IE5.5 +, Firefox 1+, Safari 3+, Chrome 1+.
To znaczy coś w stylu:
Użyj mnie, jeśli w pobliżu nie ma nic ważnego!
Nie mogę tego powiedzieć lepiej.
źródło
!important
nie ogranicza się tylko do Safari 3+; obsługuje go od samego początku, jak wszystkie inne przeglądarki inne niż IE. IE rozumie to od wersji 4, ale obsługuje jąSłuży do wywierania wpływu na sortowanie w kaskadzie CSS po dokonaniu sortowania według pochodzenia. Nie ma to nic wspólnego ze specyfiką, jak podano tutaj w innych odpowiedziach.
Oto priorytet od najniższego do najwyższego:
Po tym następuje specyfika reguł, które wciąż mają palec w torcie.
Bibliografia:
źródło
!important
jest modyfikatorem porządku kaskadowego developer.mozilla.org/en-US/docs/Web/CSS/Cascade (patrz tabela w celach informacyjnych).Zmienia zasady nadpisywania priorytetu kaskad css. Zobacz specyfikację CSS2 .
źródło