Подумайте над созданием таблиц стилей, используя SASS .Это позволит вам управлять дублированием несколькими способами:
Самое простое - определить переменную для вашего синего цвета и не беспокоиться о необходимости многократного обновления:
$color-corporate-base: #009
#header { color: $color-corporate-base; }
#content { color: $color-corporate-base; }
Этоскомпилируется с обычным CSS, помещая значения цвета в том месте, на которое они ссылаются в вашем документе:
#header { color: #009; }
#content { color: #009; }
Вы можете использовать «mixins» для включения правил в различные селекторы:
@mixin bold-color {
color: blue;
font-weight: bold;
}
#header {
@include bold-color;
background: black;
}
#content {
@include bold-color;
background: white;
}
Это скомпилируется в обычный CSS с двумя включенными правилами стиля в каждом селекторе.Конечно, это создает дублирование:
#header {
color: blue;
font-weight: bold;
background: black;
}
#content {
color: blue;
font-weight: bold;
background: white;
}
Несмотря на то, что это устраняет дублирование в вашем источнике таблиц стилей Sass, облегчающее работу, в выводе CSS все еще есть это дублирование.(Вы можете сгруппировать общие стили с запятыми и поместить разные стили в свои собственные селекторы, но это вернётся к вашему первоначальному вопросу.)
Есть классная новая функция Sass, которая решает эту проблему.Это называется "наследование селектора".Проверьте это:
.bold-color {
color: blue;
font-weight: bold;
}
#header {
@extend .bold-color;
background: black;
}
#content {
@extend .bold-color;
background: white;
}
На первый взгляд, это похоже на миксины, но посмотрите на вывод CSS:
.bold-color, #header, #content {
color: blue;
font-weight: bold;
}
#header { background: black; }
#content { background: white; }
Это позволяет вам организовать ваши селекторы в таблице стилей Sassесли хотите, и , вы получите оптимизированный выход, который хотите!