рдирдорд╕реНрддреЗ
BEM рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЗ рдХрд╛рдо рдХреА рд╕рдордЭ рдореЗрдВ рдЖрд╕рд╛рдиреА рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдлреИрд▓ рдЧрдИ рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реАрдЖрдИрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪред BEM рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреА рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (Yandex, Habr) рдФрд░ рдХреБрдЫ рдЪреМрдЦрдЯреЛрдВ (
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-md ) рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдЧреБрдЬрд░реЗрдЧрд╛ред рд╕рднреА рд▓реЗрдЖрдЙрдЯ рдЙрджрд╛рд╣рд░рдг
рдмреАрдИрдПрдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд▓рд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо BEM рдмреНрд▓реЙрдХ / рддрддреНрд╡ / рд╕рдВрд╢реЛрдзрдХ рд╣реИред рдХрд┐рд╕реА рднреА рд▓реЗрдЖрдЙрдЯ рдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рд╕рд╛рдЗрдЯ
рдХрд╛ рд╕рд╛рдЗрдбрдмрд╛рд░ ред рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рддрддреНрд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рддрддреНрд╡реЛрдВ рдореЗрдВ рд░рд╛рдЬреНрдп рд╕рдВрд╢реЛрдзрдХ (рд╕рдХреНрд░рд┐рдп, рдЕрдХреНрд╖рдо), рдмрджрд▓рддреА рд╕реАрдорд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдХреНрд╖рд╛рдПрдВ, рдЪреМрдбрд╝рд╛рдИ, рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ, рдЖрджрд┐ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдмреНрд▓реЙрдХ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ BEM рд╣рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рдХреЛ рд▓рдВрдмрд╛ рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрд╢рд╛ рддрддреНрд╡реЛрдВ рдХреЛ рдмреНрд▓реЙрдХ рдирд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣реАрдВ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рджреБрдЦрдж рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред BEM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЖрдЗрдЯрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдПрдБ рдирд┐рдореНрди рд╣реИрдВ:
рдмрд┐рдирд╛ рдкрдврд╝реЗ html
рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ
рдмреАрдИрдПрдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рд▓реЗрдЖрдЙрдЯ рд╣реИред рдмрдврд╝реЗ рд╣реБрдП рдФрд░ php рдЬреИрд╕реЗ CSS рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХрд┐рд╕реА рднреА рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдардиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ:
<ul class="article-rewind article-rewind_type_static article-rewind_lang_ru">
<li class="article-rewind__next">
<div class="article-rewind__next-text"> </div>
<a class="article-rewind__next-link" href=""> </a>
</li>
</ul>
, SCSS, :
<ul class="article-rewind type-static lang-ru">
<li class="next">
<div class="text"> </div>
<a class="link" href=""> </a>
</li>
</ul>
.article-rewind {
margin: 0;
padding: 0;
list-style: none;
&.type-static {
position: relative;
display: flex;
}
&.lang-en {}
&.lang-ru {}
&.lang-uk {}
& > .next {
position: relative;
flex-grow: 1;
align-self: center;
margin-right: 88px;
text-align: right;
.text {
font-size: 16px;
position: absolute;
right: 0;
margin-top: -32px;
}
.link {
font-size: 40px;
line-height: 46px;
}
}
}
BEM тАФ , тАФ . , CSS , ,
button active, disabled, error, , . тАФ CSS :
<h1 class="article__heading_level_1 article__heading_level_1_active"></h1>
SCSS, :
<h1 class="heading active"></h1>
.article {
h1.heading {
font-size: 50px;
line-height: 64px;
float: left;
&.active {
color: #ccc;
}
}
}
тАФ -
, . , . ,
promo-section_color_white тАФ ,
.promo-section. . , :
<div class="promo-section promo-section_color_white"></div>
html, - , :
<div class="promo-section background-white"></div>
.promo-section {
position: relative;
padding: 0 0 70px;
}
.background-white {
background-color: white;
}
:
CSS id
, mixin'a html- :
<h1 class="article__heading article__heading_level_1"></h1>
<h2 class="article__heading article__heading_level_2"></h2>
<h3 class="article__heading article__heading_level_2"></h3>
h1,h2 , ┬лarticle__heading_level_1┬╗.
<h1 class="heading"></h1>
<h2 class="heading"></h2>
<h3 class="heading"></h3>
@for $index from 1 through 6 {
h#{$index}.heading {
font-size: (42px / $index);
}
}
/* mixin output */
h1.heading {font-size: 42px;}
h2.heading {font-size: 21px;}
h3.heading {font-size: 14px;}
h4.heading {font-size: 10.5px;}
h5.heading {font-size: 8.4px;}
h6.heading {font-size: 7px;}
, , , , , .. , .
тАФ .
? BEM'a header'e , body. , , - .
. , CSS, . , .
:
hackernoon.com/bem-should-not-exist-6414005765d6