@3dben

Написание классов по БЭМ(независимые блоки)?

Здравствуйте. Пытаюсь вкурить БЭМ. Пишу более коротко ибо post__item--color довольно громоздко. Мне нужен совет так как я недопонимаю некоторых моментов. С блоками внутри блоков. Код будет ниже.

В официальной документации написанно: Блок - Функционально независимый компонент страницы, который может быть повторно использован

У меня есть секция с class="news" в ней у меня будет 2-а вида поста маленький и большой, но пока что я рассмотрю маленький.

Блок маленького поста имеет class="post" первым делом в него входит post_item в котором будет находиться картинка post_item_img и блок который будет появляться при наведении hidden

В этом месте я хотел бы остановиться и спросить. Если этот блок будет использоваться в большом посту и я его считаю независимым т.е. блоком который может использоваться где либо еще. иогу ли я его написать без родителя post_ выходит это не элемент блока и не модификатор, а блок в блоке!!!

Далее в hidden есть кнопка с class="hidden_button" ну это его элемент по этому я написал так.

в блоке с class="post" есть еще один вложенный блок с class="content" Я его тоже считаю независимым. Блоком который будет использоваться в большом посте, но с некоторыми изменениями.

В большом посте останется только а H2 &p будут заменены так как там будет другая структура.

Собственно вопрос правильно ли я мыслю и вообще правильно ли я делаю.

КОД: https://jsfiddle.net/b41z19vz/2/

В SASS выглядит так:
/* section pots end */

.news
	padding: 46px 0
	background-color: $body_color

.post
	position: relative
	min-height: 266px
	&_item
		position: relative
		&::after
			position: absolute
			bottom: 0
			left: 0
			right: 0
			height: 3px
			content: ""
			background-color: $gray_color
		&_img
			width: 100%
.ln
	&_green
		&::after
			background-color: $green_color
	&_yellow
		&::after
			background-color: $yellow_color
	&_purple
		&::after
			background-color: $purple_color

.hidden
	top: 0
	left: 0
	width: 100%
	height: 100%
	position: absolute
	background-color: rgba(0,0,0,.7)
	&_button
		width: 141px
		height: 35px
		padding: 6px 5px 5px 35px
		color: $white_color
		text-transform: uppercase
		border: 2px solid $white_color
		border-radius: 25px
		display: block
		margin: 0 auto
		margin-top: 10%
		background-image: url(../img/loopa.png)
		background-repeat: no-repeat
		background-position: 12% 50%
	
.shade
	&_green
		background-color: rgba(27,175,93,.7)
	&_yellow
		background-color: rgba(248,151,31,.7)
	&_purple
		background-color: rgba(136,73,156,.7)

.content
	position: relative
	padding: 20px 15px 0
	text-align: center
	&_ticket
		width: 61px
		height: 61px
		border-radius: 50% 
		border: 3px solid $white_color
		background-color: $gray_color
		margin: 0 auto
		left: 0
		top: -30px
		right: 0
		bottom: 0
		position: absolute
	&_title
		color: $black_color
		font-size: 14px
	&_text
		font-size: 12px
		color: $gray_color
		text-transform: uppercase
		font-weight: bold
		bottom: 0

.tic	
	&_green
		background-color: $green_color
	&_yellow
		background-color: $yellow_color
	&_purple
		background-color: $purple_color

.txt
	&_green
		color: $green_color
	&_yellow
		color: $yellow_color
	&_purple
		color: $purple_color
  • Вопрос задан
  • 367 просмотров
Пригласить эксперта
Ответы на вопрос 1
RubaXa
@RubaXa
Начнем с того, что элемент, элемента, уже не BEM, во-вторых «довольно громоздко» не аргумент, а так есть два общепринятых вида записи:
1. Родной: `block/block_mod/block_mod-val` и `block__elem/block__elem_mod`
2. Забугорный: `block/block--mod` и `block__elem/block__elem--mod`
Ответ написан
Ваш ответ на вопрос

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

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