OO CSS/CSS компоненты

Мне интересно, каким способом является реально-ориентированный CSS, где вы можете действительно быстро и чисто повторно использовать компоненты.


Сценарий 1:

HTML:

<button class="button button-submit">Submit</button>

CSS:

.button {
  /* basic styles */
}
.button-submit {
  /* special styles for submit button */
}

Сценарий 2:

HTML

<button class="button submit">Submit</button>

CSS

.button {
  /* basic styles */
}
.button.submit {
  /* special styles */
}

Я вижу только два негативных аспекта, по одному в каждом сценарии.

В сценарии 1 у вас могут быть действительно длинные имена классов.
В сценарии 2, если вы определяете.submit как его собственный элемент / компонент, вы сталкиваетесь со старой проблемой, когда вы не можете повторно использовать фрагменты кода, чтобы оставаться неизменными в любом месте.

2 ответа

Сценарий 1, вероятно, будет более оригинальным, но, как и все технологии и методологии, я бы выбрал тот, который наилучшим образом соответствует вашим потребностям, и вам понравится писать.

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

Идея, стоящая за всем этим, заключается в том, чтобы сделать написание кода проще, быстрее и более пригодным для повторного использования. Как только на один из этих факторов оказывается слишком сильное воздействие при попытке удовлетворить другого, вся идея, стоящая за их попыткой в ​​первую очередь, аннулируется.

Просто отметим, что это чисто субъективный ответ, и все разные.

Несколько хороших статей о различных методологиях и практиках, которые я использовал, чтобы помочь принять решение:

Надеюсь это поможет!

CSS не является ООП, однако вы можете использовать фреймворки, которые позволяют вам СУХОЙ кодировать CSS.

Другие вопросы по тегам