attr()
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Hinweis:
Die attr()
-Funktion kann mit jeder CSS-Eigenschaft verwendet werden, jedoch ist die Unterstützung für Eigenschaften außer content
experimentell, und die Unterstützung für den Typ-oder-Einheit-Parameter ist spärlich.
Die attr()
CSS Funktion wird verwendet, um den Wert eines Attributs des ausgewählten Elements abzurufen und im Stylesheet zu verwenden. Sie kann auch auf Pseudo-Elementen verwendet werden, in welchem Fall der Wert des Attributs des ursprünglichen Elements des Pseudo-Elements zurückgegeben wird.
Probieren Sie es aus
Syntax
/* Basic 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");
Werte
attribute-name
-
Der Name eines Attributs des in CSS referenzierten HTML-Elements.
<type-or-unit>
-
Ein Schlüsselwort, das entweder den Typ des Attributwertes oder seine Einheit darstellt, da in HTML einige Attribute implizite Einheiten haben. Wenn die Verwendung von
<type-or-unit>
als Wert für das gegebene Attribut ungültig ist, ist auch derattr()
-Ausdruck ungültig. Wenn weggelassen, wirdstring
als Standard verwendet. Die Liste der gültigen Werte ist:string
-
Der Attributwert wird als CSS
<string>
behandelt. Er wird NICHT erneut geparst, insbesondere werden die Zeichen unverändert verwendet, anstatt dass CSS-Escapes in andere Zeichen umgewandelt werden.Standardwert: ein leerer String.
color
-
Der Attributwert wird als Hash (3- oder 6-stelliger Hash) oder als Schlüsselwort geparst. Es muss ein gültiger CSS
<string>
-Wert sein. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
currentcolor
. url
-
Der Attributwert wird als ein String geparst, der innerhalb einer CSS
url()
-Funktion verwendet wird. Relative URLs werden relativ zum ursprünglichen Dokument aufgelöst, nicht relativ zum Stylesheet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert: die URL
about:invalid
, die auf ein nicht existierendes Dokument mit einem generischen Fehlerzustand verweist. integer
-
Der Attributwert wird als ein CSS
<integer>
geparst. Wenn er ungültig ist, das heißt, kein Integer oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0
, oder, wenn0
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. number
-
Der Attributwert wird als ein CSS
<number>
geparst. Wenn er ungültig ist, das heißt, keine Zahl oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0
, oder, wenn0
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. length
-
Der Attributwert wird als eine CSS
<length>
-Dimension geparst, einschließlich der Einheit (z.B.12.5em
). Wenn er ungültig ist, das heißt, keine Länge oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Wenn die gegebene Einheit eine relative Länge ist, berechnetattr()
sie in eine absolute Länge um. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0
, oder, wenn0
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. em
,ex
,px
,rem
,vw
,vh
,vmin
,vmax
,mm
,cm
,in
,pt
, oderpc
-
Der Attributwert wird als ein CSS
<number>
, das heißt ohne die Einheit (z.B.12.5
), geparst und als eine<length>
mit der angegebenen Einheit interpretiert. Wenn er ungültig ist, das heißt, keine Zahl oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Wenn die gegebene Einheit eine relative Länge ist, berechnetattr()
sie in eine absolute Länge um. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0
, oder, wenn0
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. angle
-
Der Attributwert wird als eine CSS
<angle>
-Dimension geparst, einschließlich der Einheit (z.B.30.5deg
). Wenn er ungültig ist, das heißt, kein Winkel oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0deg
, oder, wenn0deg
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. deg
,grad
,rad
-
Der Attributwert wird als ein CSS
<number>
, das heißt ohne die Einheit (z.B.12.5
), geparst und als ein<angle>
mit der angegebenen Einheit interpretiert. Wenn er ungültig ist, das heißt, keine Zahl oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0deg
, oder, wenn0deg
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. time
-
Der Attributwert wird als eine CSS
<time>
-Dimension geparst, einschließlich der Einheit (z.B.30.5ms
). Wenn er ungültig ist, das heißt, keine Zeit oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0s
, oder, wenn0s
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. s
,ms
-
Der Attributwert wird als ein CSS
<number>
, das heißt ohne die Einheit (z.B.12.5
), geparst und als ein<time>
mit der angegebenen Einheit interpretiert. Wenn er ungültig ist, das heißt, keine Zahl oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0s
, oder, wenn0s
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. frequency
-
Der Attributwert wird als eine CSS
<frequency>
-Dimension geparst, einschließlich der Einheit (z.B.30.5kHz
). Wenn er ungültig ist, das heißt, keine Frequenz oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet.Standardwert:
0Hz
, oder, wenn0Hz
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. Hz
,kHz
-
Der Attributwert wird als ein CSS
<number>
, das heißt ohne die Einheit (z.B.12.5
), geparst und als eine<frequency>
mit der angegebenen Einheit interpretiert. Wenn er ungültig ist, das heißt, keine Zahl oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0Hz
, oder, wenn0Hz
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft. %
-
Der Attributwert wird als ein CSS
<number>
, das heißt ohne die Einheit (z.B.12.5
), geparst und als ein<percentage>
interpretiert. Wenn er ungültig ist, das heißt, keine Zahl oder außerhalb des von der CSS-Eigenschaft akzeptierten Bereichs, wird der Standardwert verwendet. Wenn der gegebene Wert als Länge verwendet wird, berechnetattr()
ihn in eine absolute Länge um. Führende und nachfolgende Leerzeichen werden entfernt.Standardwert:
0%
, oder, wenn0%
kein gültiger Wert für die Eigenschaft ist, der Mindestwert der Eigenschaft.
<fallback>
-
Der Wert, der verwendet werden soll, wenn das zugehörige Attribut fehlt oder einen ungültigen Wert enthält. Wenn nicht gesetzt, verwendet CSS den Standardwert, der für jedes
<type-or-unit>
definiert ist.
Formale Syntax
<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
Beispiele
content-Eigenschaft
In diesem Beispiel fügen wir dem Inhalt des <p>
-Elements den Wert des data-foo
data-*
globalen Attributs voran.
HTML
<p data-foo="hello">world</p>
CSS
[data-foo]::before {
content: attr(data-foo) " ";
}
Ergebnis
color-Wert
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
In diesem Beispiel setzen wir den CSS-Wert von background-color
auf den Wert des data-background
data-*
globalen Attributs, das dem <div>
-Element zugewiesen ist.
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);
}
Ergebnis
Verwendung eines Fallbacks
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
In diesem Beispiel fügen wir dem <p>
-Element den Wert des data-browser
data-*
globalen Attributs hinzu. Wenn das data-browser
-Attribut im <p>
-Element fehlt, fügen wir den Fallback-Wert "Unknown" hinzu.
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;
}
Ergebnis
Spezifikationen
Specification |
---|
CSS Values and Units Module Level 5 # attr-notation |
Browser-Kompatibilität
BCD tables only load in the browser