Zaawansowane selektory CSS

0

Cześć.

Zastanawiam się, czy w wypadku gdy ktoś umie się dobrze posługiwać metodyką BEM jest jakikolwiek sens poznawania tych bardziej zaawansowanych selektorów CSS typu: :last-child , A ~ B , A + B , :not(X)
?

0

Tak, BEM to tylko nazewnictwo.

0

Czasem możesz zrobić fixa takim jednym selektorem zamiast przerabiać widok.

0

Wydaje mi się że BEM narzuca tworzenie bardzo dużej ilości klas, a w takim wypadku używanie skomplikowanych selektorów nie ma sensu skoro można:
klasa1 { ... }
klasa1 klasa2 { ... }
klasa1 klasa2 klasa3 { ... }

0

Zależy jak bardzo skomplikowaną rzecz robisz.

<div class="graph">
  <h1>Welcome</h1>
  <p>Something something</p>
  <span>Bla bla Bla bla Bla bla</span>
  <span>Bla continues...</span>
  <span>Bla bla Bla bla Bla bla</span>
  <span>Bla continues...</span>
</div>

vs

<div class="graph">
  <div class="close-button"></div>
  <h1 class="title">Welcome</h1>
  <p class="subtitle">Something something</p>
  <span class="subtext first">Bla bla Bla bla Bla bla</span>
  <span class="after-subtext">Bla continues...</span>
  <span class="subtext">Bla bla Bla bla Bla bla</span>
  <span class="after-subtext last">Bla continues...</span>
  <div class="clearfix"></div>
</div>

Kiedy ja przechodziłem do nowego projektu, to rozwijanie GUI który wyglądał bardziej jak pierwszy przykład było przyjemnością. Tam odseparowano "konstrukcje" od ostylowania. Jeśli coś miało być merytoryczną częścią interfejsu (tekst, przycisk, link) to było to elementem HTML. Jeśli coś było ozdobnikiem, podkreśleniem, ikonką, kolorkiem, to załatwiało się to przez CSS. Nie widzę powodu żeby je łączyć, i wszystko definiować w tym samym miejscu.

PS: Ktoś mógłby powiedzieć że w takich technologiach jak Angular albo Vue.js można całą specyfikę ozdobników schować w komponentach, i wtedy znowu DOM odzwierciedlałby merytorykę - po cześci się zgadzam, ale to ma sens tylko w zakresie jednego komponentu. Jeśli ozdobik występuje globalnie, albo przy połączeniu kilku komponentów, problem zostaje.

0

@TomRiddle tylko, że odbiegasz od tematu. Autor pyta tutaj o sens nauki zaawansowanych selektorów w przypadku gdy posługuje się sprawnie BEM.

0

W kontekście BEM - całkowicie nieprzydatne (oprócz pseudoelementów oczywiście, których klasami nie zastąpisz). W kontekście programowania w ogóle - przydatna umiejętność.

1 użytkowników online, w tym zalogowanych: 0, gości: 1