Zawód: Technik informatyk , Technik programista
Kategorie: Tworzenie stron WWW
Którego związku selektorów CSS należy użyć w miejscu znaków zapytania, aby zdefiniowany styl został zastosowany tylko do tekstu „paragrafie”?
Prawidłowy selektor to „b + i”, ponieważ wykorzystuje tzw. selektor sąsiedniego rodzeństwa (adjacent sibling selector). Ten zapis oznacza: wybierz element <i>, który znajduje się bezpośrednio po elemencie <b>, na tym samym poziomie drzewa DOM, czyli ma tego samego rodzica. W naszym przykładzie struktura jest prosta: wewnątrz paragrafu <p> znajduje się <b>tekstu</b>, a zaraz po nim <i>paragrafie</i>. Dokładnie taki układ idealnie pasuje do selektora „b + i”. Dzięki temu styl letter-spacing: 10px i color: red zostanie zastosowany tylko do tekstu w znaczniku <i>, czyli do słowa „paragrafie”, a nie do całego akapitu, ani do <b>. Moim zdaniem to jeden z bardziej niedocenianych selektorów, bo pozwala bardzo precyzyjnie stylować elementy na podstawie ich kontekstu w dokumencie, bez dodawania klas czy identyfikatorów. W praktyce stosuje się go np. do stylowania pierwszego <p> po nagłówku, zmiany wyglądu etykiety formularza, która następuje po jakimś polu, albo do drobnych efektów typograficznych w treści artykułów. W specyfikacji CSS (np. CSS Selectors Level 3 i 4) selektory rodzeństwa są opisane jako mechanizm do zaznaczania elementów na podstawie relacji strukturalnych, co jest dużo bardziej eleganckie niż ręczne „oklejanie” wszystkiego klasami. Warto też pamiętać różnicę między „+” a „~”. „b + i” działa tylko na najbliższe sąsiednie <i>, natomiast „b ~ i” objęłoby wszystkie elementy <i> będące późniejszym rodzeństwem <b>. W tym zadaniu zależy nam tylko na jednym, konkretnym słowie, więc wybór „b + i” jest jak najbardziej zgodny z dobrymi praktykami – selektor jest możliwie wąski i jednoznaczny. To potem procentuje w większych projektach, gdzie czytelne i precyzyjne selektory bardzo ułatwiają utrzymanie arkusza stylów.