Какое правильное использование функции CSS attr?

Так как эта функция реализована в IE8, я хотел бы точно узнать, что я могу с ней сделать, но мне трудно заставить ее работать где угодно, кроме псевдоэлементов: before и: after. Должны ли быть разрешены следующие условия?

span[color] { color: attr(color); }

Я тоже пробовал это в Google Chrome, но это не сработало. Кроме того, как насчет более динамичных вещей, таких как:

input[value=attr(default)] { color: gray; }

Ответы

Ответ 1

В CSS 2.1 (что должно быть использовано в наши дни) функция content на : до и: после псевдоэлементов. Поэтому его единственной целью является создание контента.

В CSS 3 этот изменил бит, поскольку attr() может возвращать другие типы, кроме строк, и может использоваться для других свойств также.

Но имейте в виду, что большая часть CSS 3 по-прежнему является рабочим проектом с очень небольшим количеством функций (не считая значений и единиц), являющихся кандидатом Рекомендация. Поддержка пользовательских агентов для функций CSS 3 в настоящее время варьируется между ограниченным и рядом с несуществующим. В большинстве случаев поставщики браузеров, похоже, борются с скукой, реализуя "классные вещи", такие как округленные границы, тень текста и т.д., Что не означает большой поддержки его работы. Но то, что вы смотрите здесь, определенно выше этого, и статус WD не изменится в ближайшем будущем. Поэтому не ожидайте, что он будет реализован где угодно.

Ответ 2

Просто используйте

span.red {}

для любого другого цвета, я не думаю, что вам нужны все комбинации:)

Или просто используйте

span[color="red"] {}