Jump to content
  • 0

Яндекс БЭМ


DivMan
 Share

Question

15 answers to this question

Recommended Posts

  • 0
Использовать ли всегда

Нет.

 

1) Стили для контента (текст, который будет наполнять контентщик/наполнист) пишутся через теги, например

.article p { blablabla: blobloblo; }

.article strong { font-size: 1000px; }

 

2) Не использую БЭМ при вёрстке форм.

 

Для начала задаю все стили для единого input. Что-то типа

input { font-size: 12px; blablabla }

 

То есть не парюсь со стилями для tel, email, text, а всё сразу. На radio и checked эти стили в большей части не применяются, в крайнем случае можно отдельно что-то подрегулировать.

 

А так как на нормальных сайтах стили внутряков формы должны выдерживаться, то не надо по миллиону раз по БЭМ-методологии писать одно и тоже.

 

input[type=submit] не использую, вместо него использую submit[type=submit], т.к. последний более гибок в управлении (предварительно конечно используя сброс стилей), на который также как на input пишу единый стиль.

 

Ну а затем уже, если надо вносить какие-то корректировки, то можно уже их делать отталкиваясь от класса тега form

.callback input[type=email]

Edited by antonKar
Link to comment
Share on other sites

  • 0

 

Использовать ли всегда

Нет.

 

1) Стили для контента (текст, который будет наполнять контентщик/наполнист) пишутся через теги, например

.article p { blablabla: blobloblo; }

.article strong { font-size: 1000px; }

 

2) Не использую БЭМ при вёрстке форм.

 

Для начала задаю все стили для единого input. Что-то типа

input { font-size: 12px; blablabla }

 

То есть не парюсь со стилями для tel, email, text, а всё сразу. На radio и checked эти стили в большей части не применяются, в крайнем случае можно отдельно что-то подрегулировать.

 

А так как на нормальных сайтах стили внутряков формы должны выдерживаться, то не надо по миллиону раз по БЭМ-методологии писать одно и тоже.

 

input[type=submit] не использую, вместо него использую submit[type=submit], т.к. последний более гибок в управлении (предварительно конечно используя сброс стилей), на который также как на input пишу единый стиль.

 

Ну а затем уже, если надо вносить какие-то корректировки, то можно уже их делать отталкиваясь от класса тега form

.callback input[type=email]

 

 

 

А можно ли использовать БЭМ бех JSONA?

Link to comment
Share on other sites

  • 0

 

JSONA

Что это? 

 

{  block: 'page',  content: {    block: 'head',    content: [      { block: 'menu', content: … },      {        elem: 'column',        content: { block: 'logo' }      },      {        elem: 'column',        content: [          {            block: 'search',            content: [              { elem: 'input' },              { elem: 'button', content: 'Search' }            ]          }        ]      },      {        elem: 'column',        content: {          block: 'auth', content: …        }      }    ]  }}
Link to comment
Share on other sites

  • 0

 

 

JSONA

Что это? 

 

{  block: 'page',  content: {    block: 'head',    content: [      { block: 'menu', content: … },      {        elem: 'column',        content: { block: 'logo' }      },      {        elem: 'column',        content: [          {            block: 'search',            content: [              { elem: 'input' },              { elem: 'button', content: 'Search' }            ]          }        ]      },      {        elem: 'column',        content: {          block: 'auth', content: …        }      }    ]  }}

А в чём отличие от JSON? Понял. Была фраза без JSON'а.

Edited by afdw
Link to comment
Share on other sites

  • 0

Раз уж речь в теме о БЭМ'e. Спрошу тут.

 

Допустим есть такая разметка:

<div class="page-header">	<div class="page_header_in">		<a href="" class="page-header__logo">			<img src="" alt="" />		</a>		<div class="search">			<input class="search__field" type="search" />			<button class="search__button">Поиск</button>		</div>	</div></div><div class="content">	<div class="content_in">		...	</div></div><div class="footer">	<div class="footer_in">		...	</div></div>

В каждом блоке (шапка, контент, подвал) должна быть обертка, которая нужна для центрирования. Так вот, часто встречал нечто такое: .header_in, content_in, footer_in. Как с точки зрения БЭМ будет правильнее? Для каждого блока делать отдельно обертку или просто сделать один класс, допустим wrapper и добавлять его?

Link to comment
Share on other sites

  • 0

А в чём проблема центрировать каждый из этих элементов?

 

Да не важно. Пускай у каждого блока будет свой background, растягивающийся на всю ширину, а нужно центрировать только контент внутри.

Link to comment
Share on other sites

  • 0

 

А в чём проблема центрировать каждый из этих элементов?

 

Говорят повторение кода - это плохо

 

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

Ну и по факту все эти умные фразы про повторяемость сильно переоценены (когда в 30000 строк css повторений строк 500 этого никто не заметит просто), но я никого не призываю говнокодить но иногда приходится идти на компромиссы в угоду скорости разработки.

  • Like 2
Link to comment
Share on other sites

  • 0
А можно ли использовать БЭМ бех JSONA?

А почему нет? Я из методологии БЭМ только именование классов использую, JSON'овский БЭМ мне как-то не нужен в проектах.

 

В каждом блоке (шапка, контент, подвал) должна быть обертка, которая нужна для центрирования. Так вот, часто встречал нечто такое: .header_in, content_in, footer_in

Я делаю так. Например, есть блок с классом .header. Обёртка задаётся как .header-wrapper, а внутряки уже дальше идут не .header-wrapper__element, а .header-element.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy