Ich versuche, einige HTML/CSS-Code an die BEM-Methodik anzupassen, aber die Klassen für die HTML zu sehen, denke ich, dass ich etwas falsch mache.Konzeptionelle Probleme mit BEM und Verschachtelung
Ich habe ein verschachteltes Objekt "footer__social" mit einigen verschachtelten Symbolen. Im Anschluss an den Rat der FAQ im offiziellen BEM Seite, die ich mit einem HTML-Code wie das am Ende:
<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>
Hier ist der Link zur FAQ: https://en.bem.info/methodology/faq/#why-does-bem-not-recommend-using-elements-within-elements-block__elem1__elem2
Für mich fühlt es sich wirklich seltsam zu haben, die „footer__ "in jedem der HTML-Tags.
Die Idee, die ich habe, ist die "footer__social" umzubenennen und starten Sie einen BEM-Block umbenennen zu "sozialen" mit ihren Kindern in "social__facebook" usw. umbenannt ... aber fühlen, dass der "soziale" Block getrennt ist die Fußzeile (sie erscheint nur dort).
<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>
Was ist der richtige Weg?
Vielen Dank!
Der Schlüssel ist, kontextspezifisches Styling und generelles Komponentendesign nicht zu verwechseln. Wenn Sie die 'social'-Komponente speziell für die Darstellung in 'footer'-IMO formatieren müssen, sollte sie entweder so definiert werden, wie Sie es im ersten Szenario beschrieben haben, oder' class =" footer__social social "haben, um eine Trennung zu ermöglichen. (Davon abgesehen bin ich kein BEM-Purist). –