attr()
Базовая Широко распространённая
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Примечание: Функция attr() может использоваться с любым свойством CSS, но поддержка свойств, отличных от content, является экспериментальной, а поддержка параметра типа или единицы ограничена.
Функция attr() CSS функция используется для извлечения значения атрибута выбранного элемента и его использования в таблице стилей. Она также может использоваться для псевдоэлементов, в этом случае возвращается значение атрибута в элементе, из которого происходит псевдоэлемент.
Попробовать
Синтаксис
/* Simple usage */ attr(data-count); attr(title); /* With type */ attr(src url); attr(data-count number); attr(data-width px); /* With fallback */ attr(data-count number, 0); attr(src url, ""); attr(data-width px, inherit); attr(data-something, "default");
Значения
attribute-name-
Имя атрибута HTML-элемента, на который ссылается CSS.
<type-or-unit>-
Ключевое слово, представляющее либо тип значения атрибута, либо его единицу, так как в HTML некоторые атрибуты имеют неявные единицы. Если использование
<type-or-unit>в качестве значения для данного атрибута неверно, выражениеattr()также будет неверным. Если оно опущено, по умолчанию используетсяstring. Список допустимых значений:string-
Значение атрибута обрабатывается как CSS-
<string>. Оно НЕ перерабатывается, и, в частности, символы используются как есть, вместо того, чтобы CSS-экранирование преобразовывалось в другие символы.Значение по умолчанию: пустая строка.
color-
Значение атрибута анализируется как шестнадцатеричный код (3- или 6-значный) или ключевое слово. Оно должно быть допустимым значением CSS-
<string>. Пробелы в начале и конце удаляются.Значение по умолчанию:
currentcolor. url-
Значение атрибута анализируется как строка, используемая внутри CSS-
url()функции. Относительные URL-адреса разрешаются относительно исходного документа, а не относительно таблицы стилей. Пробелы в начале и конце удаляются.Значение по умолчанию: URL
about:invalid, указывающий на несуществующий документ с универсальным кодом ошибки. integer-
Значение атрибута анализируется как CSS-
<integer>. Если оно недействительно, то есть не является целым числом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Пробелы в начале и конце удаляются.Значение по умолчанию:
0, или, если0не является допустимым значением для свойства, минимальное значение свойства. number-
Значение атрибута анализируется как CSS-
<number>. Если оно недействительно, то есть не является числом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Пробелы в начале и конце удаляются.Значение по умолчанию:
0, или, если0не является допустимым значением для свойства, минимальное значение свойства. length-
Значение атрибута анализируется как размер CSS-
<length>, включая единицу (например,12.5em). Если оно недействительно, то есть не является размером или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Если заданная единица — относительная,attr()вычисляет её как абсолютную. Пробелы в начале и конце удаляются.Значение по умолчанию:
0, или, если0не является допустимым значением для свойства, минимальное значение свойства. -
em,ex,px,rem,vw,vh,vmin,vmax,mm,cm,in,pt, илиpc -
Значение атрибута анализируется как CSS-
<number>без единицы (например,12.5) и интерпретируется как<length>с указанной единицей. Если оно недействительно, то есть не является числом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Если заданная единица — относительная,attr()вычисляет её как абсолютную. Пробелы в начале и конце удаляются.Значение по умолчанию:
0, или, если0не является допустимым значением для свойства, минимальное значение свойства. angle-
Значение атрибута анализируется как размер CSS-
<angle>, включая единицу (например,30.5deg). Если оно недействительно, то есть не является углом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Пробелы в начале и конце удаляются.Значение по умолчанию:
0deg, или, если0degне является допустимым значением для свойства, минимальное значение свойства. -
deg,grad,rad -
Значение атрибута анализируется как CSS-
<number>без единицы (например,12.5) и интерпретируется как<angle>с указанной единицей. Если оно недействительно, то есть не является числом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Пробелы в начале и конце удаляются.Значение по умолчанию:
0deg, или, если0degне является допустимым значением для свойства, минимальное значение свойства. time-
Значение атрибута анализируется как размер CSS-
<time>, включая единицу (например,30.5ms). Если оно недействительно, то есть не является временной величиной или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Пробелы в начале и конце удаляются.Значение по умолчанию:
0s, или, если0sне является допустимым значением для свойства, минимальное значение свойства. -
s,ms -
Значение атрибута анализируется как CSS-
<number>без единицы (например,12.5) и интерпретируется как<time>с указанной единицей. Если оно недействительно, то есть не является числом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Пробелы в начале и конце удаляются.Значение по умолчанию:
0s, или, если0sне является допустимым значением для свойства, минимальное значение свойства. frequency-
Значение атрибута анализируется как размер CSS-
<frequency>, включая единицу (например,30.5kHz). Если оно недействительно, то есть не является частотой или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию.Значение по умолчанию:
0Hz, или, если0Hzне является допустимым значением для свойства, минимальное значение свойства. -
Hz,kHz -
Значение атрибута анализируется как CSS-
<number>без единицы (например,12.5) и интерпретируется как<frequency>с указанной единицей. Если оно недействительно, то есть не является числом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Пробелы в начале и конце удаляются.Значение по умолчанию:
0Hz, или, если0Hzне является допустимым значением для свойства, минимальное значение свойства. %-
Значение атрибута анализируется как CSS-
<number>без единицы (например,12.5) и интерпретируется как<percentage>. Если оно недействительно, то есть не является числом или выходит за допустимый диапазон для свойства CSS, используется значение по умолчанию. Если заданное значение используется как размер,attr()вычисляет его как абсолютный размер. Пробелы в начале и конце удаляются.Значение по умолчанию:
0%, или, если0%не является допустимым значением для свойства, минимальное значение свойства.
<fallback>-
Значение, используемое, если соответствующий атрибут отсутствует или содержит недопустимое значение. Если не указано, CSS использует значение по умолчанию, определённое для каждого
<type-or-unit>.
Формальный синтаксис
<attr()> =
attr( <attr-name> <attr-type>? , <declaration-value>? )
<attr-name> =
[ <ident-token> '|' ]? <ident-token>
<attr-type> =
type( <syntax> ) |
string |
<attr-unit>
<syntax> =
'*' |
<syntax-component> [ <syntax-combinator> <syntax-component> ]* |
<syntax-string>
<syntax-component> =
<syntax-single-component> <syntax-multiplier>? |
'<' transform-list '>'
<syntax-combinator> =
'|'
<syntax-string> =
<string>
<syntax-single-component> =
'<' <syntax-type-name> '>' |
<ident>
<syntax-multiplier> =
'#' |
'+'
<syntax-type-name> =
angle |
color |
custom-ident |
image |
integer |
length |
length-percentage |
number |
percentage |
resolution |
string |
time |
url |
transform-function
Примеры
свойство content
В этом примере мы добавляем значение атрибута data-foo data-* глобального атрибута к содержимому элемента <p>.
HTML
<p data-foo="hello">world</p>
CSS
[data-foo]::before {
content: attr(data-foo) " ";
}
Результат
значение цвета
Экспериментально: Это экспериментальная технология экспериментальная технология
Перед использованием в продуктовой среде внимательно проверьте таблицу совместимости с браузерами.
В этом примере мы задаём значение CSS background-color значению атрибута data-background data-* глобального атрибута, назначенного элементу <div>.
HTML
<div class="background" data-background="lime"> background expected to be red if your browser does not support advanced usage of attr() </div>
CSS
.background {
background-color: red;
}
.background[data-background] {
background-color: attr(data-background color, red);
}
Результат
использование значения по умолчанию
Экспериментально: Это экспериментальная технология экспериментальная технология
Перед использованием в продуктовой среде внимательно проверьте таблицу совместимости с браузерами.
В этом примере мы добавляем значение data-browser data-* глобального атрибута к элементу <p>. Если атрибут data-browser отсутствует у элемента <p>, мы добавляем значение по умолчанию "Неизвестно".
HTML
<p data-browser="Firefox">My favorite browser is:</p> <p>Your favorite browser is:</p>
CSS
p::after {
content: " " attr(data-browser, "Unknown");
color: tomato;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль CSS Values and Units Level 5 # attr-notation |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
attr |
2 | 12 | 1 | 9 | 3.1 | 18 | 4 | 10.1 | 2 | 1.0 | ≤37 |
fallback |
Нет | Нет | 119 | Нет | Нет | Нет | 119 | Нет | Нет | Нет | Нет |
type-or-unit |
Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/attr