В движке Битрикса заключать стили CSS в пространства имён Битрикса

Рейтинг: 6.0000  
На голосовании
Предложил Неслуховский Иван 26.07.2018 08:30:37

В движке Битрикса заключать стили CSS в пространства имён Битрикса

Постоянно сталкиваюсь с двумя очень неправильными ситуациями, когда дизайнеры и программисты, создающие движок Битрикса, не изолируют свой код CSS от кода клиента.

Ситуация 1: Клиент прописывает стили для сайта. Ну, например, ссылки должны быть зелёными. Заходим в какое-нибудь окно редактирования административной панели (в публичке), а там - зелёные ссылки! Т.е. стили сайта повлияли на стили в интерфейсе движка. Такого быть не должно! Мало ли какие у клиента будут стили для инпутов, и они "поползут" в вёрстке. Может у клиента сайт на синем фоне, а ссылки белые. А в окне Битрикса выползут ссылки "белые на белом", т.е. "пропадут". И т.п.

Лечение: Битрикс должен заключать свой HTML в контейнер, а стили прописывать с директивой !important
Объяснить разработчикам, что служебные стили Битрикса начинаются с bx- и лучше их не использовать.
<div class="bx-admin-panel"> ......... </div>
.bx-admin-panel a !important { ............. }

Ситуация 2: Клиент прописывает стили для сайта. И использует где-то на странице стандартный компонент. Этот компонент внезапно перекрывает стили шаблона и получается каша. Например, пропадает элемент! Оказывается, в компоненте был прописан вот такой стиль в общем пространстве имён!!!

div.empty {width: 1px; height: 1px;}
Лечение: Опять же Битрикс все свои замечательные придумки должен заключать в пространство имён.
<div class="bx-super-component"> .... <div class="empty"></div> .... </div>

.bx-super-component div.empty {width: 1px; height: 1px;}
Научите своих дизайнеров, верстальщиков и программистов хорошему!
Это не проблема клиента! Это проблема некачественного неизолированного кода! Клиент должен быть свободен от таких раздумий "а не пришло ли в голову разработчикам Битрикса использовать такой-то стиль...."

Рейтинг: -1  
Неслуховский Иван 26.07.2018 08:47:39
Можете представить себе, например, плагин jquery, который изменяет стили в общем пространстве имён? ;)