Twój trzeci przykład dotyczy łączenia prostych selektorów za pomocą kombinatora potomka, który jest jak bardziej rozmyta i wolniejsza wersja kombinatora dziecka. Jeśli nie obsługujesz IE6, powinieneś raczej użyć combinatora dziecka zamiast tego.

Na przykład #twitter p vs #twitter>p. Najpierw przeglądarka gromadzi wszystkie elementy p, a następnie przechodzi o jeden poziom wyżej i sprawdza, czy ten element ma id „twitter”. Jeśli nie, przeglądarka zatrzyma się w tym miejscu, jeśli użyłeś combinatora dziecka. Z combinatorem descendant będzie podróżować aż do węzła głównego (jeśli nie znajdzie po drodze jakiegoś #twitter). Tak więc, fałszywe pozytywy są zawsze nieco wolniejsze z kombinatorem potomnym.

Większym problemem z kombinatorem potomnym jest jego rozmytość, która zwiększa możliwość kolizji. Jako efekt uboczny, tworzenie arbitralnie zagnieżdżalnych struktur staje się o wiele bardziej skomplikowane.

.container #twitter p jest również zbyt specyficzny. Czy naprawdę chcesz, aby p elementy wewnątrz #twitter wyglądały inaczej, jeśli #twitter nie jest wewnątrz .container?

Innym problemem jest to, że .container jest lokalizacją, a nie częścią struktury. Więc, yea… ta reguła nie jest wielokrotnego użytku.

Skalowalny CSS = kod wielokrotnego użytku = klasy. Reguły oparte na identyfikatorach z definicji nie są wielokrotnego użytku.

Leave a comment

Twój adres e-mail nie zostanie opublikowany.