Как да разбираме BEM и какво мотивира кодера да го използва
Като back-end играч ми е трудно да се справя с този BEM. Защо BEM, когато има SASS/SCSS/LESS. Наскоро трябваше да сложа оформлението на двигателя и ето какво видях на първата страница:
Бутонът е прост, фон и цвят. Шест класа за прост бутон при регистрация. Моят код в IDE от JetBrains надхвърля бялата ивица. На въпроса на дизайнера какво е това: "Бам, използвам един и същи стил няколко пъти и т.н." Дълго спорихме, защо не можете да стигнете до дъщерния елемент през родителя? къде е краткостта? къде са миксините? защо не направите наследени класове във вашия SCSS?. И когато прегледах кода през панела за разработчици, видях истинскаMMO RPG PVPбитка, око за око, стил за стил, всичко е прекъснато 3 пъти. Така че за мен BEM като цяло е огромна патерица, а не методология.
Това (в код) не е BEM. Според BEM трябва да е нещо подобно:
В този код button описва стандартния бутон, account__button описва позицията на стандартния бутон в блока на акаунта, а button_black и button_big правят стандартния бутон съответно черен и голям. Този подход ви позволява да използвате повторно стилове. Не ги копирайте отново и отново, а използвайте повторно вече написани. Е, има и други предимства. И само многото долни черти не е непременно BEM, може просто да е странно именуване на класове
къде са миксините? защо не наследите класове във вашия SCSS?
защо не можете да стигнете до дъщерния елемент чрез родителя
На въпроса на дизайнера какво е това: "Бам"
Бяхте нагло излъгани. Това е шиткод.
1) Като back-end'er, какво ви интересуват класовете? 2) Знаете ли разликата между BEM и SASS? BEM е методологиячасове по писане. SASS е препроцесор.
BEM - Това е повече мащабируемост и едва след това сбитост. Забравете селекторите (само ако наистина имате нужда от тях).
И когато прегледах кода през панела за разработчици, видях истинска MMO RPG PVP битка, зъб за зъб, стил за стил, всичко се прекъсва 3 пъти
Това е некадърност на разработчика. BEM няма нищо общо с това.
Така че за мен BEM като цяло е огромна патерица, а не методология
Просто не познавахте дзен на BEM.
Като цяло във въпроса имаш шит а не БЕМ.
Като back-end играч ми е трудно да се справя с този BEM.
Изобщо не трябва да правите това.
Защо BEM, когато има SASS/SCSS/LESS.
Нещо от поредицата "За какво ми е хладилник като не пуша", разбирате ли. :)
Шест класа за прост бутон при регистрация.
Този ефект може да се постигне без BEM.
Моят код в IDE от JetBrains надхвърля бялата ивица.
Това обикновено се решава с помощта на комбинацията Ctrl+Alt+L в JetBrains IDE.
„Бам, използвам един и същ стил няколко пъти и т.н.“
BEM не е измислен, за да"използва един и същ стил няколко пъти", ако прочетете историята, тогава BEM е създаден за решаване на много специфични проблеми, като цяло можете да прочетете за тях в офиса. Уебсайт на BEM (няма да рискувам да го изброя сам, за да не изкривя смисъла).
защо не можете да стигнете до дъщерния елемент чрез родителя? къде е краткостта? къде са миксините? защо не наследите класове във вашия SCSS?
Така че за мен BEM като цяло е огромна патерица, а не методология.
И ако погледнете HTML кода с правилния BEM, той се оказва като самодокументиращ се код в програмирането. Всичко е ясно от имената на класовете и можете да видите коя частоформление независим блок с елементи вътре. Можете да видите състоянието на елементи, като напр
menu__link_active card_shadow button_red section__title_blue
Във вашия пример, резултат от идиотизма на наборчика, можете спокойно да откъснете ръцете му.
А Sass е просто по-удобна работа със стилове. Препроцесорите не осигуряват модулност в работата по проекта. Безспорни удобства - определено, аз самият използвам sass и написах моя собствена адаптивна решетка, когато всичко адаптивно се случва в стилове, а не както в bootstrap чрез поставяне на куп класове и създаване на много влагане, а резултатът е бъркотия в маркирането. Но BEM е различен. Между другото, той идеално пасва на възможностите на препроцесорите!
За съжаление го направи като на шега. - Гоги, харесваш ли Шакира? - Не - Къде го чу? - Моги ми пееше
Доказаха ти едни глупости, давайки ги за БЕМ. И тогава се чудите защо хората не харесват BEM. Да, такива умници плашат хората с глупостите си, а те от своя страна си мислят, че това всъщност е БЕМ.
Съжалявам за злополучното ви запознанство с едно много добро и мъдро изобретение.
И в крайна сметка - всички сме умни, всички знаем всичко, но ровя в интернет и, честно казано, не виждам прилагането на "ноу-хау" в достатъчен мащаб. Навсякъде всичко е криво, наклонено и само някъде (много рядко) се вижда първоначалната идея да се реализира всичко според ума.
Според мен BEM е разбираем само за бекенд работници, това по принцип е единствената здрава идея от тези, които са отпред. Потенциално все още има WebAssembly за премахване на ShitScript, но това все още е перспектива.
Дизайнерът на оформлението трябва да бъде бичуван. и пляска, докато научи.
BEM има само един проблем, а вашият случай не е рядкост, хората изобщо не разбират от масова глупост.
BEM е добър на двеслучаи, или за уеб студио, което има много проекти или за големи проекти. Основната идея е, че първата буква е блок, а всеки блок е абсолютно независим от средата, така че можете да го поставите навсякъде в проекта и да не се притеснявате, за разлика от Bootstrap, в който всичко е обвързано с всичко и когато се опитате да промените нещо, много проблеми изскачат на различни места.