• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

HTML code reveiw. Czy dobrze rozumiem metodyke BEM ?

VPS Starter Arubacloud
+1 głos
220 wizyt
pytanie zadane 12 maja 2019 w HTML i CSS przez Aleksander Początkujący (360 p.)

Witam,

uczę się pisać strony zgodnie z BEM. Zrobiłem prosty szablon i chciałbym aby ktoś bardziej doświadczony mógł ocenić czy dobrze rozumiem.

Na stronie są 3 bloki section z elementami header i content z odpowiednimi modyfikatorami.

https://codepen.io/anon/pen/rgLqmG

1 odpowiedź

0 głosów
odpowiedź 12 maja 2019 przez rafal.budzis Szeryf (85,340 p.)
wybrane 12 maja 2019 przez Aleksander
 
Najlepsza

Hej jest dosyć dobrze błędy głównie w CSS. Moje zrozumienie BEMa na początku było na o wiele niższym poziomie ;D 

Uwagi : 

1) Selektor do znacznika body i img 

W znaczniku body możesz stworzyć blok całej strony i nazwać go np page. W selektorze body .section__content--gallery img powinieneś zastosować klasę elementu.

 

2) Zagłębienia w SCSS 

Masz stworzone zagłębienia w SCSS przez to twój kod generuje selektory w taki sposób :

body .top__container .top__content

Aby mówić o poprawnym BEM selektor powinien wyglądać tak :

.top__content

Jak to osiągnąć ?  Każdy blok pownien tworzyć strukture od zera np :
 

.page {
    background: #FAFAFA;
    font-family: 'Lato', sans-serif;
    height: 100vh;
}

.top {
    [...]
    background-attachment: fixed;
    &__container{
        position: absolute;
        bottom: 0;
        width: 100%;
        height: 100px;
          
    }

    &__content{
        cursor: pointer;
        margin: auto;
        width: 200px;
        color: white;
        text-align: center;
        font-size: 30px;
    }
}

Zwróć uwagę ze container i content są osobnymi elementami i nie powinny być zależne od siebie. Tak jest łatwiej zapanować nad wagami selektów. 

3) Modyfikator elementu modyfikuje inne elementy tu też wypadało by kod trochę przebudować. Mam na myśli kawałek 

&__content {
    font-size: 20px;
    padding-left: 50px;
    padding-right: 50px;
    &--description{
        display: flex;
        justify-content: space-between;
        .content__text{
            width: 60%;
        }
    }
}

Jest to bardzo złe że modyfikator elementu wpływa na inny element. Łatwiej się pogubić. Jeśli chcesz jednym modyfikatorem zmienić wiele elementów dodaj modyfikator do całego bloku.

.section {
    padding-bottom: 50px;
    margin: auto;
    width: 70%;
    color: black;
    &__header{
        padding: 5px;
        [...]
    }
    &__content{
        font-size: 20px;
        padding-left: 50px;
        padding-right: 50px;
    }

    &--description &__content{
        display: flex;
        justify-content: space-between;
    }

    &--description &__text{
        width: 60%;
    }
}

Pamiętaj żeby zmienić miejsce modyfikatora w HTMLu ;) 

Jeśli chcesz jeszcze poczytać o BEM mogę Cię odesłać do mojego artykuły może coś rozjaśni. https://budzis.pl/Wpisy/Kursy/Optymalizacja-stron/Metodologia-BEM/ Jeśli nie to pytaj ;)

Podobne pytania

+1 głos
0 odpowiedzi 320 wizyt
pytanie zadane 4 grudnia 2016 w HTML i CSS przez Napromieniowany Użytkownik (570 p.)
+1 głos
1 odpowiedź 361 wizyt
pytanie zadane 19 sierpnia 2022 w HTML i CSS przez Hoorder Początkujący (470 p.)
+1 głos
0 odpowiedzi 120 wizyt
pytanie zadane 13 kwietnia 2022 w HTML i CSS przez Hoorder Początkujący (470 p.)

93,028 zapytań

141,991 odpowiedzi

321,294 komentarzy

62,375 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...