Виталий Б.
948 сообщений
#1 месяц назад
Приветствую. Впервые столкнулся с тем, что забраковали работу по причине: "очень много !important". Использую в цсс симбиоз разных подходов, в основном БЭМ, но и в том числе ACSS для переопределения свойства любого элемента, например:

.mt-100 {
margin-top: 100px !important;
}
.mt-70 {
margin-top: 70px !important;
}
.mt-50 {
margin-top: 50px !important;
}
.mt-40 {
margin-top: 40px !important;
}
.mt-30 {
margin-top: 30px !important;
}
.mt-20 {
margin-top: 20px !important;
}
.mt-0 {
margin-top: 0 !important;
}

Так как выше по коду могут быть селекторы с высшим приоритетом (.class .subclass) - добавляю !important для того, чтоб приоритет последнего был наивысшим. Предполагается, что такого рода классы, с одним свойством, будут иметь наивысший приоритет. Тот кто проверял работу не вникал в подробности, а просто поиском нашел строки с !important и выдал вердикт.
Собственно вопрос: Стоит ли объяснять тестеру что к чему, или такой подход в корне не верный и лучше избавиться от !important, а где будет низкий приоритет добавлять цепочку, например: div.mt-20?
Андрей М.
265 сообщений
#1 месяц назад
!important это костыль для крайних случаев
Василий С.
120 сообщений
#1 месяц назад
Цитата (lufter):
Стоит ли объяснять тестеру что к чему, или такой подход в корне не верный и лучше избавиться от !important,
В Bootstrap всё то-же самое:
https://getbootstrap.com/docs/5.0/dist/css/bootstrap.css
.mt-0 {   margin-top: 0 !important; 
}

.mt-1 {
margin-top: 0.25rem !important;
}

.mt-2 {
margin-top: 0.5rem !important;
}

Третьяков А.
9 сообщений
#1 месяц назад
Цитата (smls):
В Bootstrap всё то-же самое:
Ага, пусть тогда еще Bootstrap забракует )
Артем Л.
11352 сообщения
#1 месяц назад
Бутстрап зло и полный отстой.
Он годится только для создания прототипов или админ панелей для личного использования.
Ну на крайний случай можно использовать в дешевом проекте, где бюджета нет, и надо сделать хоть какую-то поделку за 3 копейки.
В остальных случаях использование бутрапа и прочих очень не рекомендуется.

!importnant действительно лучше не использовать. Это признак плохой продуманности кода (говнокод говоря проще).
Если все продумать как следует - импортанты вообще не нужны.
Этот костыль обычно используют при доработках чужого кода, когда нужно быстро пофиксить какую-то ситуацию, что б хоть как-то ее победить.

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

В целом если у вас проект не лендинг за 50$, то тестер вправе придираться.
Хотя о таких вещах как правило нужно предупреждать заранее.
Ну а вообще у профессионалов в сфере верстки - это идет и так по умолчанию :-)
Мирон Яцкевич
5441 сообщение
#1 месяц назад
Это вопросы эстетики. А работодатель может забраковать и за не эстетичность верстки.

Поэтому надо с ним заранее такое оговаривать.

!important; можно красиво обойти
.mt-70 {
margin-top: 70px !important;
}

Просто уточняем к какому типу DOM относится этот mt-70 div, span

и вуаля

div.mt-70 {
margin-top: 70px;
}

Работа принята! И так понятнее
Виталий Б.
948 сообщений
#1 месяц назад
Hungry_Hunter, согласен на счет бутстрапа в целом, кроме сетки, ее можно использовать, удобно, хоть я и не использую именно сетку с бутстрапа, а свою, но принцип похожий. 

Цитата (Hungry_Hunter):
В целом да - при таком использовании все работает, никто ничего не заметит.
Но поддержка в дальнейшем становится не очень удобной и опытные специалисты плюются от такого кода.
это о чем? о подходе с атомарными классами, типа div.mt-70 или .mt-70 ? Почему то на современных макетах большой разброс отступов, очень удобно, вместо задания блокам модификаторов. В основном для margin и padding это использую.
Артем Л.
11352 сообщения
#1 месяц назад
Цитата (lufter):
это о чем?
Об использовании !important
Павел Л.
115 сообщений
#1 месяц назад
Цитата (Hungry_Hunter):
Ну на крайний случай можно использовать в дешевом проекте, где бюджета нет, и надо сделать хоть какую-то поделку за 3 копейки.
Но разве не проще поддерживать готовый фреймворк? Ведь экспертизу по готовому фреймворку можно найти на куче ресурсов, а что-то кастомное может развалиться после первого же обновления.
Артем Л.
11352 сообщения
#1 месяц назад
loyanich, нет, вообще ни разу не проще. Костыли на косытлях.
Весь процесс разработки верстки на фреймворке сводится к переопределению стилей и борьбой с говнокодом этого фреймворка.
Вместо того что бы заниматься нормальной версткой.
Максим К.
646 сообщений
#1 месяц назад
Цитата (Hungry_Hunter):
Весь процесс разработки верстки на фреймворке сводится к переопределению стилей и борьбой с говнокодом этого фреймворка.