gazes12
@gazes12

Не могу понять, как правильно задавать классы большим вложенностям по методологии бэм?

Здравствуйте.
Есть код:
<section class="communication">

                <div class="communication__forms">

                    <div class="communication__forms-result"></div>
                    
                    <i class="communication__forms-arrow disabled fa-solid fa-reply"></i>


                    <div class="communication__forms-wrapper-create-recall visible">
                        <div>Оставь свой отзыв!</div>

                        <form>
                            <input type="text" placeholder="Имя">
                            <input type="text" placeholder="Фамилия (не обязательно)">
                            <textarea placeholder="Оставить отзыв..."></textarea>

                            <div>
                                <button>Очистить</button>
                                <button>Отправить</button>
                            </div>
                        </form>

                    </div>
                </div>    
            </section>


До communication__forms-wrapper-create-recall все понятно, ну не могу понять какие классы задавать ее объектам? Пробовал так:
<div class="communication__forms-wrapper-create-recall visible">
                        <div class="communication__forms-wrapper-create-recall-title">Оставь свой отзыв!</div>

                        <form class="communication__forms-wrapper-create-recall-form">
                            <input type="text" class="communication__forms-wrapper-create-recall-form-name" placeholder="Имя">
                            <input type="text" placeholder="Фамилия (не обязательно)" class="communication__forms-wrapper-create-recall-form-surname">
                            <textarea placeholder="Оставить отзыв..." class="communication__forms-wrapper-create-recall-form-recall"></textarea>

                            <div class="communication__forms-wrapper-create-recall-form-buttons">
                                <button class="communication__forms-wrapper-create-recall-form-buttons-clear">Очистить</button>
                                <button class="communication__forms-wrapper-create-recall-form-buttons-send">Отправить</button>
                            </div>
                        </form>

                    </div>


Мне кажется, что я че-то не так пишу и оно должно быть не так? Подскажите пожалуйста, как правильно реализовать классы для таких вложенностей? Буду очень рад за помощь!
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Get-Web
@Get-Web
Front-End Developer
Надо смотреть дизайн, чтобы более точно сказать как лучше, но в любом случае вы делаете не правильно.
Задавайте короткие лакончиные названия, если у вас это не получается, значит вы свернули не туда.
Чтобы получалось дробите блоки на более мелкие блоки.
Вместо этого ужаса communication__forms-wrapper-create-recall-form-buttons-send создайте отдельно блок кнопку button или любое другое не зарезервированное название. Кнопку вы можете модифицировать так button_clear button_send, хотя лучше конечно дать более общее название или вообще делить по типу например button_type_1 button_type_2. Затем если в контекте кнопка другая используте микс

<button class="communication_button button button_type_1">Очистить</button>

Очень аккуратно и понятно

то же самое с формой, создайте блок form и используйте как независимую структуру в нужном месте.

ну и вообще вы только вдумайтесь у вас есть якобы элемент communication__forms-wrapper-create-recall-form и вы наследуетесь от него все глубже и глубже communication__forms-wrapper-create-recall-form-name так нельзя делать, вы косвенно пытаетесь делать элемент элемента, каждый элемент должен наследоваться от блока и редких случаях можно немного разбавить связями по типу el__price el__price-old el__price-new
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы