Принятие, потому что никто больше не заинтересован в разговоре. Обратите внимание, что, хотя SASS является отличным проектом, он на самом деле не заходит слишком далеко, чтобы ответить на вопрос или решить основную проблему.

оложим, у меня есть какая-то HTML-страница и соответствующий CSS-файл. Я хотел бы добавить закругленные углы к некоторым элементам. Я хочу чередовать цвета фона в каждом другом разделе, n. Я хочу добавить состояние наведения для каждого заголовка раздела. Так далее и так далее - я продолжаю укладывать, укладывать и укладывать.

Мне приходит в голову, что есть три крайности, где это касается «кто, что, когда, где, почему и как» распределения CSS-правил по разметке по классу, идентификатору и иерархии.

Экстрим № 1: Каждое правило стиля основано на идентификаторе.

Экстрим № 2: Каждое правило стиля основано на классе.

Экстрим № 3: Каждое правило стиля основано на иерархии DOM.

Очевидно, что дзен интерфейсной веб-разработки будет включать в себя разумный баланс повторного использования классов в сравнении с уникальными правилами и иерархией, поскольку любая из трех крайностей может нанести ущерб производительности браузера, удобству обслуживания и размеру кода. Думаю. Или я не прав? Как сказать, когда новый.class необходимо, или правила стиля, которые вы хотите применить, могут бытьбезопасно рожок в существующем определении? Когда два#id правила достаточно похожи, что вы должны вытащить общий код в класс? Когда вы «разветвляете» класс (иногда вы сохраняете оригинал и добавляете производные для всех отклоняющихся ситуаций («percolate» в терминах ООП), а в других случаях подталкиваете общие правила к каждому из нескольких непересекающихся отклонений - ясно, что это зависит от характер (т. е. количество задействованных правил) в самом отклонении). Есть ли просто обстоятельства для использования чисто иерархических правил?

Вопрос: Существуют ли какие-либо практические правила, регулирующие подобные дебаты? Каков ваш опыт и / или совет? Существуют ли хорошие статьи, ресурсы, книги, лекции (бонусные баллы за видео в стиле «технические разговоры») или другой контент по этой теме? Я хотел бы, чтобы обсуждение было основано на нескольких ключевых моментах (хотя любые комментарии приветствуются), в произвольном порядке:

Поддержка (простота чтения, изменения и добавления кода)СУХОЙ (не повторяй себя)Эффективность времени (время загрузки; прогрессивный рендеринг)Эффективность пространства (общий размер разметки и связанных стилей)

Ответы на вопрос(1)

Ваш ответ на вопрос