.card {
/* No width set - following BEM principle */
}
.card__image {
width: 100px; /* Could overflow if .card is too narrow */
}
.card__content {
width: 80%; /* Percentage of undefined container */
}
Я изучаю методологию БЭМ и столкнулся с этим принципом в документации:
"Блок не должен влиять на его окружение, то есть вы не должны устанавливать внешнюю геометрию (поля) или позиционирование блока".
Мне нужно уточнить, какие свойства CSS окончательно считаются "внешней геометрией" и как решать практические проблемы макета. Конкретные вопросы: [list] [*][b]Какие свойства CSS определенно являются «внешней геометрией»?[/b] [list] Ограничен ли список следующими параметрами: поля, позиции, сверху/слева/справа/снизу, float, z-index?
[*]А как насчет ширины и высоты? Они кажутся контекстно-зависимыми.
[/list]
[*][b]Как обрабатывать внутреннюю компоновку без внешней геометрии?[/b] [list] Если блоки не могут иметь ширину, как предотвратить нарушение макета внутренними элементами с фиксированной/процентной шириной?
[*]Пример сценарий:
[/list]
[/list] [code].card { /* No width set - following BEM principle */ } .card__image { width: 100px; /* Could overflow if .card is too narrow */ } .card__content { width: 80%; /* Percentage of undefined container */ } [/code] [list] [*][b]Являются ли эти альтернативы приемлемыми?[/b] [list] Использование минимальной ширины/[code]max-width[/code] вместо ширины
[*]Использование отображения: flex/grid на блоках
[*]Использование элементов-оболочек для управления макетом
[/list]
[/list] Что я пробовал/исследовал: [list] [*]Прочтите документацию по БЭМ и краткое руководство
[*]Изучили примеры, но обнаружили несоответствия в реальном использовании
[*]Понимаем философию многократно используемых компонентов, но нуждаемся в практическом руководстве по реализации
[/list] [b]Где следует провести границу между «влияние на окружающую среду» и «поддержание внутренней структуры» на практике?[/b]