Я давно хотел иметь возможность включать один класс стилей в другой. Например
med-font {
font-size:12px;
}
#message a {
style: med-font;
color: blue;
...
}
/* lots of other styles, some of which use med-font */
Очевидно, что это упрощенный пример, но ключевой момент заключается в том, что все эти теги привязки в #message не должны нуждаться в явных классах или идентификаторах. Сейчас я либо дублирую размер шрифта в каждом классе, который нуждается в этом, либо добавляю классы к вещам, которые иначе не требовали бы этого. И так как я хочу легко контролировать размер шрифта из одного места, я обычно начинаю добавлять классы.
Другим решением является разделение определения "#message a" в этом примере (ниже). Это работает хорошо для небольших проектов, но для больших проектов это на самом деле мое наименее любимое решение. Это делает обслуживание сайта очень трудным, если у вас много классов, разделенных и разбросанных по большим файлам стилей.
med-font, #message a {
font-size:12px;
}
#message a {
color: blue;
...
}
Итак, мой вопрос состоит из двух частей: 1. Раздражает ли это других людей? 2. Кто-нибудь знает, рассматривается ли эта функция для CSS3?
Редактировать: Добавление примера HTML-тела и более подробной информации ...
Суть в том, что добавление атрибута класса к 20 указанным ниже привязкам для установки размера шрифта утомительно.
<div id="username" class="med-font">schickb</div>
<div id="message">
<div id="part1">
<a href="whatever">text</a>
<!--lots more tags and say 6 anchors -->
</div>
<div id="part2">
<a href="foo">text</a>
<!--lots more tags and say 8 anchors -->
</div>
</div>
<div id="footer"> <!-- footer anchors should be a smaller font-size -->
<a href="boo">lala</a>
<p class="med-font">Company Name</p>
<!-- other tags and 3 more anchors -->
</div>
Помните, что важная цель - иметь одно место, где объявлен «мед-шрифт», чтобы его было легко настроить. В моем реальном проекте есть стили шрифтов малого, среднего и большого размера. Мне нужно только одно объявление для каждого, чтобы мне не приходилось искать в CSS, чтобы сказать, измените 12px на 11px.
Лучшее решение в настоящее время - добавить класс «med-font» ко всем якорям в теле, а класс «small-font» - ко всем якорям в нижнем колонтитуле. Но я бы предпочел сделать то, что показывал изначально, и просто включить нужный шрифт в стили для "#message a" и "#footer a".
Резюме: Я хочу, чтобы CSS был больше DRY