Я пытаюсь адаптировать некоторый код HTML/CSS к методологии BEM, но, видя классы для HTML, я думаю, что я делаю что-то неправильно.Концептуальные проблемы с BEM и вложением
У меня есть вложенный объект «footer__social» с некоторыми вложенными значками. Следуя совету Справку в официальной странице BEM я в конечном итоге с HTML код так:
<footer>
<div class="footer__logo"></div>
<div class="footer__social">
<div class="footer__facebook"></div>
<div class="footer__twitter"></div>
<div class="footer__pinterest"></div>
<div class="footer__googleplus"></div>
<div class="footer__linkedin"></div>
<div class="footer__youtube"></div>
</div>
<p class="footer__copyright">2016 todos los derechos reservados</p>
<p class="footer__policy">Política de privacidad</p>
<p class="footer__terms">Términos y condiciones</p>
</footer>
Вот ссылка на FAQ: https://en.bem.info/methodology/faq/#why-does-bem-not-recommend-using-elements-within-elements-block__elem1__elem2
Мне кажется очень странным, чтобы иметь «footer__ "в каждом из тегов HTML.
Идея, которую я имею, заключается в том, чтобы переименовать «footer__social» и запустить блок BEM, переименовав его в «социальный» с их детьми, переименованными в «social__facebook» и т. Д. ... но чувствуйте, что «социальный» блок отключен от нижний колонтитул (он появляется только там).
<footer>
<div class="footer__logo"></div>
<div class="social">
<div class="social__facebook"></div>
<div class="social__twitter"></div>
<div class="social__pinterest"></div>
<div class="social__googleplus"></div>
<div class="social__linkedin"></div>
<div class="social__youtube"></div>
</div>
<p class="footer__copyright">2016 todos los derechos reservados</p>
<p class="footer__policy">Política de privacidad</p>
<p class="footer__terms">Términos y condiciones</p>
</footer>
Каков правильный способ?
Спасибо!
Ключом является не смешивание специфического стиля и общего стиля компонентов. Если вам нужно стилизовать компонент «social» специально для того, как он отображается внутри IMO 'footer', он должен быть определен как описанный в первом сценарии или иметь« class = »footer__social social», чтобы разрешить разделение. (Это говорит, что я не пурист BEM). –