В CSS2 и даже в готовящемся CSS3 я не могу найти то, что было бы абсолютно естественным и экономило время - применяя стили CSS из других стилей, а не из HTML.
Например:
.awesome-image {
border: 1px #000 solid;
margin: 2px;
}
.super-awesome-image {
.alwesome-image; // or something like that - this is similar to a function call in a functional language
padding: 2px;
}
Часто никто не имеет доступа к сгенерированному HTML, поэтому изменение CSS - единственный выбор.
Такого рода поддержка наследования сделает жизнь намного проще, потому что мы сможем обрабатывать правила CSS как «функции» и повторно использовать код, а не дублировать его.
Или я что-то упустил, и CSS поддерживает это (я никогда не видел это раньше?) Или планирует поддержать это? Просвети меня, пожалуйста.
Редактировать: Рассмотрим другой пример, который показывает, что объявление .awesome-image, .super-awesome-image {common rules}
не элегантно:
.border5 {
border-radius:5px;
-moz-border-radius:5px;
-webkit-border-radius:5px
}
Я бы предпочел не накапливать все остальные классы, которые хотели бы иметь радиус границы в том же определении. Увы, это то, что нужно делать без функциональной поддержки (я много раз упоминал, что есть доступ только к файлу CSS, а не к самому HTML).