2015-10-12 9 views
9

Jestem w sprzeczności z moim szefem w stosunku do kolejności przetwarzania CSS.Kolejność przetwarzania CSS

Szef twierdzi, że kolejność selektorów w pliku CSS powinna odpowiadać kolejności, w jakiej selektory te są używane do wywoływania stron internetowych. Twierdzi, że taka struktura jest wymuszana przez przeglądarki, które sekwencyjnie odczytują zawartość pliku CSS i stosują reguły w tej sekwencji.

Myślę, że to jest złe.

Jeśli moje doświadczenie programistyczne ma jakikolwiek związek z aplikacją CSS, a ja jestem programistą .NET, przeglądarki odczytują najpierw pliki CSS, a dla każdego selektora tworzone jest odwołanie do pamięci (wskaźnik przypominający odwołanie do pamięci metody), a następnie, jak odczytuje przeglądarka plik html i renderuje stronę, za każdym razem, gdy używany jest selektor, przeglądarka odwołuje się do odpowiedniego adresu pamięci z regułą stylu i stosuje zmiany, a wynik końcowy jest renderowany w DOM. Sekwencja w pliku CSS nie ma znaczenia.

Nie mogę poprzeć mojego roszczenia żadną dokumentacją. Czy ktoś wie, gdzie mogę znaleźć dokumentację techniczną w tym zakresie i udowodnić mi, czy dobrze, czy źle? Czy istnieje zasada, jak organizować plik CSS?

+1

Specyfika reguł CSS określa, w jaki sposób są renderowane. To i przerażająca zasada "! Important". Twój szef zdecydowanie myli się, że "kolejność selektorów w pliku CSS powinna odpowiadać kolejności, w jakiej te selektory są używane do wywoływania stron internetowych". – j08691

+0

https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/How_CSS_works Może on pracuje nad CSS, gdy ta reguła została zastosowana, przed wszystkimi nowościami związanymi z architekturą CSS. BEM, OOCSS, itd. – arterzatij

+0

Twój szef jest niepoprawny, selektory powinny być ładowane według specyfiki, ze stylami globalnymi, potem style modułów, potem style specyficzne dla strony, a następnie hacki (jeśli ich potrzebujesz) - każdy zestaw jest nieco bardziej specyficzny i Nadmiernie jeździsz jednak, jeśli jesteś naprawdę sprytny z konwencjami nazewnictwa i w pełni rozumiesz specyfikę, kolejność selektorów staje się o wiele mniej istotna, twój szef może być najwyższej klasy twórcą, który nie potrafi się dobrze wyrazić :-) –

Odpowiedz

8

Kolejność ma znaczenie, ale tylko wtedy, gdy jest taka sama.

np.

.one { color: black; } 
.two { color: red; } 

z

<div class="one two">...</div> 

... będzie się różnić w zależności od zamówić zestawy reguł CSS pojawiają się.

Zobacz the cascade więcej szczegółów.

+0

bardzo jasne :) –

+1

... i każdy dobry projekt * powinien * unikać tej sytuacji (posiadanie dwóch sprzecznych klas walczy ze sobą, opierając się tylko na zamówieniu) – vals

Powiązane problemy