Упаковка идентификаторов в CSS классах? - PullRequest
8 голосов
/ 17 февраля 2010

Я относительно новичок в CSS и задаюсь вопросом, возможно ли "обернуть" идентификаторы, чтобы вам не приходилось повторять их снова и снова?

т.е.

#home
{
some stuff
}

#home .header {
some stuff
}

#home .sub_header {
some stuff
}

Можно ли "обернуть" .header и .sub_header, чтобы мне не приходилось постоянно повторять #home? то есть что-то вроде этого, чтобы ID мог объединять классы вместе?

#home
{
some stuff
}

@#home [

.header {
some stuff
}

.sub_header {
some stuff
}
]

Ответы [ 4 ]

3 голосов
/ 17 февраля 2010

Отличный вопрос! Боюсь, это невозможно с родным CSS. Там нет реальных коротких путей, чтобы взять.

Если вы работаете с большим количеством CSS, существуют прекомпиляторы, которые позволяют вам использовать расширенные обозначения и конвертировать их в CSS на лету.

Вот например

  • xCSS может вложенные дочерние элементы .

  • Тогда есть МЕНЬШЕ , оно написано на Ruby, так что вам нужно установить его (насколько я понимаю, я его еще не использовал), но это прекрасно подходит для редактирования CSS в любой среде. Проверьте раздел « вложенные правила » на главной странице.

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

0 голосов
/ 17 февраля 2010

Если вы используете PHP, рассмотрите возможность использования lessphp (http://leafo.net/lessphp/docs/), или http://www.symfony -project.org / plugins / sfLessPhpPlugin для symfony

0 голосов
/ 17 февраля 2010

Другой замечательный CSS-фреймворк - это CSS Scaffold

CSS Scaffold работает на PHP, прост в использовании

  • допускает глубокое вложение селектора
  • константы
  • custom mixins (многоразовые кусочки кода CSS)
  • реализует структуру создания сетки
  • кэширование уже проанализированных CSS-файлов для производства ( + minify )

Если вы не кодируете большой сайт, я все равно рекомендую plain css

0 голосов
/ 17 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...