1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
|
---
title: Wertdefinitionssyntax
slug: Web/CSS/Value_definition_syntax
tags:
- CSS
- Referenz
translation_of: Web/CSS/Value_definition_syntax
original_slug: Web/CSS/Wertdefinitionssyntax
---
<p>{{ CSSRef() }}</p>
<p><span class="seoSummary">Eine formale Grammatik, die <strong>CSS Wertdefinitionssyntax</strong>, wird für die Definition einer Menge von gültigen Werten für eine CSS Eigenschaft oder Funktion verwendet.</span> Zusätzlich zu dieser Syntax kann die Menge an gültigen Werten durch semantische Beschränkungen (wie z. B. dass eine Zahl positiv sein muss) weiter eingegrenzt werden.</p>
<p>Die Definitionssyntax beschreibt, welche Werte erlaubt sind und die Interaktionen zwischen ihnen. Eine Komponente kann ein <em>Schlüsselwort</em> sein, einige Zeichen, die als <em>Literal</em> interpretiert werden, oder ein Wert eines vorhandenen CSS Datentyps einer anderen CSS Eigenschaft.</p>
<h2 id="Komponentenwert_Typen">Komponentenwert Typen</h2>
<h3 id="Schlüsselwörter">Schlüsselwörter</h3>
<h4 id="Generische_Schlüsselwörter">Generische Schlüsselwörter</h4>
<p>Ein Schlüsselwort mit einer vordefinierten Bedeutung wird wortgetreu, ohne Anführungszeichen, dargestellt, zum Beispiel: <code>auto</code>, <code>smaller</code> oder <code>ease-in</code>.</p>
<h4 id="Die_Spezialfälle_inherit_und_initial">Die Spezialfälle <code>inherit</code> und <code>initial</code></h4>
<p>Alle CSS Eigenschaften akzeptieren die Schlüsselwörter <code>inherit</code> und <code>initial</code>, die durchweg in CSS definiert werden. Sie werden nicht in der Wertdefinition angezeigt und werden implizit definiert.</p>
<h3 id="Literale">Literale</h3>
<p>In CSS können einige Zeichen getrennt auftreten, wie der Schrägstrich ('<code>/</code>') oder das Komma ('<code>,</code>'), und werden in der Eigenschaftendefinition verwendet, um Teile voneinander zu trennen. Das Komma wird oft verwendet, um Werte in Aufzählungen oder Parameter in Mathematik ähnlichen Funktionen zu trennen; der Schrägstrich trennt oft Teile eines Wertes, die semantisch unterscheiden, jedoch eine gemeinsame Syntax haben. Normalerweise wird der Schrägstrich manchmal in Kurzform Eigenschaften verwendet, um Komponenten von einander zu trennen, die vom gleichen Typ sind, aber zu verschiedenen Eigenschaften gehören.</p>
<p>Beide Symbole erscheinen buchstäblich in einer Wertdefinition.</p>
<h3 id="Datentypen">Datentypen</h3>
<h4 id="Elementare_Datentypen">Elementare Datentypen</h4>
<p>Bestimmte Daten werden überall in CSS verwendet und werden einmalig für alle Werte in der Spezifikation definiert. Die sogenannten <em>elementaren Datentypen</em> werden durch ihren von den Symbolen '<code><</code>' und '<code>></code>' umschlossenen Namen gekennzeichnet: {{ cssxref("<angle>") }}, {{cssxref("<string>")}}, …</p>
<h4 id="Nichtterminale_Datentypen">Nichtterminale Datentypen</h4>
<p>Weniger häufige Datentypen, genannt <em>nichtterminale Datentypen</em>, werden ebenfalls von '<code><</code>' und '<code>></code>' umschlossen.</p>
<p>Es gibt zwei Arten von nichtterminalen Datentypen:</p>
<ul>
<li>Datentypen, die <em>den Namen einer Eigenschaft teilen</em>, eingeschlossen von Anführungszeichen. In diesem Fall teilt der Datentyp die gleiche Menge an Werten wie die Eigenschaft. Sie werden oft in der Definition von Kurzform Eigenschaften verwendet.</li>
<li>Datentypen, die <em>den Namen einer Eigenschaft nicht teilen</em>. Diese Datentypen ähneln den elementaren Datentypen. Sie unterscheiden sich lediglich in der Stelle ihrer Definition von den elementaren Datentypen: In diesem Fall ist die Definition normalerweise sehr nahe bei der Definition der Eigenschaft, die sie benutzt.</li>
</ul>
<h2 id="Komponentenwert_Kombinatoren">Komponentenwert Kombinatoren</h2>
<h3 id="Eckige_Klammern">Eckige Klammern</h3>
<p><em>Eckige Klammern</em> schließen mehrere Entitäten, Kombinatoren und Multiplikatoren ein und transformieren diese anschließend als eine einzige Komponente. Sie werden benutzt, um <strong>Komponenten zu gruppieren und so die Rangordnungsregeln zu umgehen</strong>.</p>
<pre class="syntaxbox"><code>bold [ thin && <length> ]</code></pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>bold thin 2vh</code></li>
<li><code>bold 0 thin</code></li>
<li><code>bold thin 3.5em</code></li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>thin bold 3em</code>; da <code>bold</code> neben die durch die Klammern definierte Komponente gestellt ist, muss sie davor erscheinen.</li>
</ul>
<h3 id="Nebeneinanderstellung">Nebeneinanderstellung</h3>
<p>Wenn mehrere Schlüsselwörter, Literale oder Datentypen aufgereiht werden und nur durch ein oder mehrere Leerzeichen getrennt werden, nennt man dies <em>Nebeneinanderstellung</em>. Alle nebeneinander gestellten Komponenten sind zwingend und müssen in der exakten Reihenfolge angegeben werden.</p>
<pre class="syntaxbox">bold <length> , thin
</pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>bold 1em, thin</code></li>
<li><code>bold 0, thin</code></li>
<li><code>bold 2.5cm, thin</code></li>
<li><code>bold 3vh, thin</code></li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>thin 1em, bold</code>, da die Entitäten in der beschriebenen Reihenfolge stehen müssen.</li>
<li><code>bold 1em thin</code>, da die Entitäten zwingend angegeben werden müssen; das Komma und ein Literal müssen vorhanden sein.</li>
<li><code>bold 0.5ms, thin</code>, da <code>ms</code> Werte keine {{cssxref("<length>")}} Werte sind.</li>
</ul>
<h3 id="Doppeltes_Und-Zeichen">Doppeltes Und-Zeichen</h3>
<p>Wenn zwei oder mehrere Komponenten durch ein <em>doppeltes Und-Zeichen</em>, <code>&&</code>, getrennt sind, bedeutet das, dass alle diese Entitäten <strong>zwingend sind, jedoch in beliebiger Reihenfolge auftreten können</strong>.</p>
<pre class="syntaxbox">bold && <length>
</pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>bold 1em</code></li>
<li><code>bold 0</code></li>
<li><code>2.5cm bold</code></li>
<li><code>3vh bold</code></li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>bold</code>, da beide Komponenten im Wert vorkommen müssen.</li>
<li><code>bold 1em bold</code>, da beide Komponenten nur einmal vorkommen dürfen.</li>
</ul>
<div class="note"><strong>Hinweis:</strong> Juxtaposition hat Vorrang gegenüber dem doppelten Und-Zeichen, was bedeutet, dass <code>bold thin && <length></code> gleichbedeutend ist mit <code>[ </code><code>bold thin ] && <length></code>. Dies beschreibt <code>bold thin <length></code> oder <code><length></code><code> bold thin</code>, aber nicht <code>bold <length></code><code> thin</code>.</div>
<h3 id="Doppelter_Balken">Doppelter Balken</h3>
<p>Wenn zwei oder mehrere Komponenten durch einen <em>doppelten Balken</em>, <code>||</code>, getrennt sind, bedeutet das, dass alle Entitäten optional sind: <strong>mindestens eine davon muss angegeben werden, und sie können in beliebiger Reihenfolge auftreten</strong>. Normalerweise wird dies verwendet, um die verschiedenen Werte einer <a href="/de/docs/Web/CSS/Kurzform_Eigenschaft" title="/en-US/docs/CSS/Shorthand_properties">Kurzform Eigenschaft</a> zu definieren.</p>
<pre class="syntaxbox"><'border-width'> || <'border-style'> || <'border-color'>
</pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>1em solid blue</code></li>
<li><code>blue 1em</code></li>
<li><code>solid 1px yellow</code></li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>blue yellow</code>, da eine Komponente nur einmal vorkommen darf.</li>
<li><code>bold</code>, da es kein erlaubtes Schlüsselwort als Wert für irgendeine Entität ist.</li>
</ul>
<div class="note"><strong>Hinweis:</strong> Das doppelte Und-Zeichen hat Vorrang gegenüber dem doppelten Balken, was bedeutet, dass <code>bold || thin && <length></code> gleichbedeutend ist mit <code>bold || [ thin && <length> ]</code>. Dies beschreibt <code>bold</code>, <code>thin</code>, <code><length></code>, <code>bold thin</code>, <code><length> bold</code>, oder <code>thin <length> bold</code>, aber nicht <code>bold <length></code><code> bold thin</code>, da <code>bold</code>, falls nicht weggelassen, vor oder nach der gesamten <code>thin && <length></code> Komponente platziert werden muss.</div>
<h3 id="Einfacher_Balken">Einfacher Balken</h3>
<p>Wenn zwei oder mehrere Entitäten durch einen <em>einfachen Balken</em>, <code>|</code>, getrennt werden, bedeutet das, dass alle Entitäten exklusive Optionen sind: <strong>genau eine dieser Optionen muss angegeben werden</strong>. Dies wird normalerweise benutzt, um eine Liste möglicher Schlüsselwörter zu trennen.</p>
<pre class="syntaxbox"><percentage> | <length> | left | center | right | top | bottom</pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>3%</code></li>
<li><code>0</code></li>
<li><code>3.5em</code></li>
<li><code>left</code></li>
<li><code>center</code></li>
<li><code>right</code></li>
<li><code>top</code></li>
<li><code>bottom</code></li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>center 3%</code>, da nur eine der Komponenten angegeben werden darf.</li>
<li><code>3em 4.5em</code>, da eine Komponente nur einmal vorkommen darf.</li>
</ul>
<div class="note">
<p><strong>Hinweis:</strong> Der doppelte Balken hat Vorrang gegenüber dem einfachen Balken, was bedeutet, dass <code>bold | thin || <length></code> gleichbedeutend ist mit <code>bold | [ thin || <length> ]</code>. Dies beschreibt <code>bold</code>, <code>thin</code>, <code><length></code>, <code><length> thin</code>, oder <code>thin <length></code>, aber nicht <code>bold <length></code>, da nur eine Entität jeder Seite des <code>|</code> Kombinators vorkommen darf.</p>
</div>
<h2 id="Komponentenwert_Multiplikatoren">Komponentenwert Multiplikatoren</h2>
<p>Ein Multiplikator ist ein Zeichen, das angibt, wie oft eine vorhergehende Entität wiederholt werden kann. Ohne einen Multiplikator muss eine Entität exakt einmal vorkommen.</p>
<p>{{Note("Multiplikatoren können nicht zu Kombinatoren hinzugefügt werden und haben auch keinen Vorrang vor diesen.")}}</p>
<h3 id="Asterisk_(*)">Asterisk (<code>*</code>)</h3>
<p>Der <em>Asterisk Multiplikator</em> gibt an, dass die Entität <strong>keinmal, einmal oder mehrmals</strong> vorkommen kann.</p>
<pre class="syntaxbox"><code>bold smaller*</code></pre>
<p>Dieses Beispiel passt auf die folgende Werte:</p>
<ul>
<li><code>bold</code></li>
<li><code>bold smaller</code></li>
<li><code>bold smaller smaller</code></li>
<li><code>bold smaller smaller smaller</code> and so on.</li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>smaller</code>, da <code>bold</code> eine Nebeneinanderstellung ist und vor jeglichem <code>smaller</code> Schlüsselwort stehen muss.</li>
</ul>
<h3 id="Plus_()">Plus (<code>+</code>)</h3>
<p>Der <em>Plus Multiplikator</em> gibt an, dass die Entität <strong>einmal oder mehrmals</strong> vorkommen kann.</p>
<pre class="syntaxbox"><code>bold smaller+</code></pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>bold smaller</code></li>
<li><code>bold smaller smaller</code></li>
<li><code>bold smaller smaller smaller</code> and so on.</li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>bold</code>, da <code>smaller</code> mindestens einmal vorkommen muss.</li>
<li><code>smaller</code>, da <code>bold</code> eine Nebeneinanderstellung ist und vor jeglichem <code>smaller</code> Schlüsselwort stehen muss.</li>
</ul>
<h3 id="Fragezeichen_()">Fragezeichen (<code>?</code>)</h3>
<p>Der <em>Fragezeichen Multiplikator</em> gibt an, dass die Entität optional ist und <strong>keinmal oder einmal</strong> vorkommen kann.</p>
<pre class="syntaxbox"><code>bold smaller?</code></pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>bold</code></li>
<li><code>bold smaller</code></li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>bold smaller smaller</code>, da <code>smaller</code> höchstens einmal vorkommen darf.</li>
<li><code>smaller</code>, da <code>bold</code> eine Nebeneinanderstellung ist und vor jeglichem <code>smaller</code> Schlüsselwort stehen muss.</li>
</ul>
<h3 id="Geschweifte_Klammern_(_)">Geschweifte Klammern (<code>{ }</code>)</h3>
<p>Der <em>Geschweifte Klammern Multiplikator</em> schließt zwei durch Komma getrennte Ganzzahlen A und B ein und gibt an, dass die Entität <strong>mindestens A-mal vorkommen muss und höchstens B-mal vorkommen darf</strong>.</p>
<pre class="syntaxbox"><code>bold smaller{1,3}</code></pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>bold smaller</code></li>
<li><code>bold smaller smaller</code></li>
<li><code>bold smaller smaller smaller</code></li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>bold</code>, da <code>smaller</code> mindestens einmal vorkommen muss.</li>
<li><code>bold smaller smaller smaller smaller</code>, da <code>smaller</code> höchstens dreimal vorkommen darf.</li>
<li><code>smaller</code>, da <code>bold</code> eine Nebeneinanderstellung ist und vor jeglichem <code>smaller</code> Schlüsselwort stehen muss.</li>
</ul>
<h3 id="Rautensymbol_()">Rautensymbol (<code>#</code>)</h3>
<p>Der <em>Rautensymbol Multiplizierer</em> gibt an, dass die Entität <strong>einmal oder mehrmals</strong> wiederholt werden kann (wie beim <em>Plus Multiplikator</em>), jedoch jedes Vorkommen durch <strong>ein Komma </strong>('<code>,</code>')<strong> getrennt</strong> wird.</p>
<pre class="syntaxbox"><code>bold smaller#</code></pre>
<p>Dieses Beispiel passt auf die folgenden Werte:</p>
<ul>
<li><code>bold smaller</code></li>
<li><code>bold smaller, smaller</code></li>
<li><code>bold smaller, smaller, smaller</code> and so on.</li>
</ul>
<p>Aber nicht:</p>
<ul>
<li><code>bold</code>, da <code>smaller</code> mindestens einmal vorkommen muss.</li>
<li><code>bold smaller smaller smaller</code>, da verschiedene Vorkommen von <code>smaller</code> durch Komma getrennt werden müssen.</li>
<li><code>smaller</code>, da <code>bold</code> eine Nebeneinanderstellung ist und vor jeglichem <code>smaller</code> Schlüsselwort stehen muss.</li>
</ul>
<h2 id="Übersicht">Übersicht</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Zeichen</th>
<th scope="col">Name</th>
<th scope="col">Beschreibung</th>
<th scope="col">Beispiel</th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="4">Kombinatoren</th>
</tr>
<tr>
<td> </td>
<td>Nebeneinanderstellung</td>
<td>Komponenten sind zwingend und müssen in der angegebenen Reihenfolge vorkommen</td>
<td><code>solid <length></code></td>
</tr>
<tr>
<td><code>&&</code></td>
<td>Doppeltes Und-Zeichen</td>
<td>Komponenten sind zwingend, aber können in beliebiger Reihenfolge vorkommen</td>
<td><code><length> && <string></code></td>
</tr>
<tr>
<td><code>||</code></td>
<td>Doppelter Balken</td>
<td>Mindestens eine der Komponenten muss angegeben werden und sie können in beliebiger Reihenfolge vorkommen</td>
<td><code><'border-image-outset'> || <'border-image-slice'></code></td>
</tr>
<tr>
<td><code>|</code></td>
<td>Einfacher Balken</td>
<td>Genau eine der Komponenten muss angegeben werden</td>
<td><code>smaller | small | normal | big | bigger</code></td>
</tr>
<tr>
<td><code>[ ]</code></td>
<td>Eckige Klammern</td>
<td>Gruppierung von Komponenten, um Rangordnungsregeln zu umgehen</td>
<td><code>bold [ thin && <length> ]</code></td>
</tr>
<tr>
<th colspan="4">Multiplizierer</th>
</tr>
<tr>
<td> </td>
<td>Kein Multiplizierer</td>
<td>Genau einmal</td>
<td><code>solid</code></td>
</tr>
<tr>
<td><code>*</code></td>
<td>Asterisk</td>
<td>0 oder mehrmals</td>
<td><code>bold smaller*</code></td>
</tr>
<tr>
<td><code>+</code></td>
<td>Pluszeichen</td>
<td>1 oder mehrmals</td>
<td><code>bold smaller+</code></td>
</tr>
<tr>
<td><code>?</code></td>
<td>Fragezeichen</td>
<td>0 oder 1-mal (that is <em>optional)</em></td>
<td><code>bold smaller?</code></td>
</tr>
<tr>
<td><code>{A,B}</code></td>
<td>Geschweifte Klammern</td>
<td>Mindestens <code>A</code>-mal, höchstens <code>B</code>-mal</td>
<td><code>bold smaller{1,3}</code></td>
</tr>
<tr>
<td><code>#</code></td>
<td>Rautensymbol</td>
<td>1 oder mehrmals, aber jedes Vorkommen getrennt durch Komma ('<code>,</code>')</td>
<td><code>bold smaller#</code></td>
</tr>
</tbody>
</table>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Kommentar</th>
</tr>
<tr>
<td>{{ SpecName('CSS3 Values', '#value-defs', 'Value definition syntax') }}</td>
<td>{{ Spec2('CSS3 Values') }}</td>
<td>Fügt den Rautensymbol Multiplizierer hinzu.</td>
</tr>
<tr>
<td>{{ SpecName('CSS2.1', 'about.html#value-defs', 'Value definition syntax') }}</td>
<td>{{ Spec2('CSS2.1') }}</td>
<td>Fügt den doppelten Und-Zeichen Kombinator hinzu.</td>
</tr>
<tr>
<td>{{SpecName('CSS1', '#notation-for-property-values', 'Value definition syntax') }}</td>
<td>{{ Spec2('CSS1') }}</td>
<td>Ursprüngliche Definition</td>
</tr>
</tbody>
</table>
<h2 id="Siehe_auch">Siehe auch</h2>
<ul>
<li>{{ CSS_key_concepts() }}</li>
</ul>
|