Задать вопрос

Как правильно реализовывать адаптивную сетку по БЭМ?

Здравствуйте.
Хотел бы узнать мнение профессионалов о правильной реализации адаптивной сетки по методологии БЭМ.
В чем собственно заключается вопрос.
Я знаю три метода:
1. C помощью специальный классов, как в bootstrap (col-sm-5, col-xs-5 и тд.)
2. @mixin в препроцессорах
3. @extend в препроцессорах

Для меня лично все они имеют свои минусы и плюсы.
1. Классы ускоряют верстку, все правила в одном месте. Но html становится грязным.
2. Миксины оставляют чистым css и html, но увеличивают css файл.
3. Наследование делают css меньшим размером, но грязным из за огромной кучи селекторов.

Какой из этих методов более правильный?
  • Вопрос задан
  • 962 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
bootd
@bootd Куратор тега CSS
Гугли и ты откроешь врата знаний!
1 вариант и нужен. То, что много классов, не играет никакой проблемы. Главное именовать их правильно, со смыслом.

<div class="row">
<div class="col col12 collg6 colmd7 colsm8 colxsm12">

<div class="blockText"></div>

</div>
</div>


.row - это блок с сеткой, т.к. я юзаю флексбок, это главный элемент
.col - колонка
.col12 - Сделай ширину колонки по умолчанию 12 из 12
.collg6 - Сделай ширину колонки на разрешении 1069 размером 6 из 12 (lg - large)
.colmd7 - Сделай ширину колонки на разрешении 819 размером 7 из 12 (md - middle)
.colsm8 - Сделай ширину колонки на разрешении 569 размером 8 из 12 (sm - small)
.colxsm12 - Сделай ширину колонки на разрешении 420 размером 12 из 12 (xsm - extra small)

Всё очень просто! А главное, удобно!
Ответ написан
Serj-One
@Serj-One
i'm sexy and i know it
Миксины. Увеличение размера конечного файла стилей не так велико, чтоб обращать на это внимание.
Ответ написан
Комментировать
werty1001
@werty1001
undefined
Я сделал один блок - сетку, пример:
<div class="grid page__layout">
	<div class="grid__row">
		<div class="grid__col grid__col--xs-12 grid__col--md-4">...</div>
		<div class="grid__col grid__col--md-4 grid__col--lg-5">...</div>
	</div>
</div>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы