Skip to content

Commit 45021eb

Browse files
committed
better selector 2025
1 parent 836ec3e commit 45021eb

File tree

13 files changed

+108
-20
lines changed

13 files changed

+108
-20
lines changed

content/css-layout/selektoren.md

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,34 +51,76 @@ Der Child Selector ist auf direkte Kinder beschränkt.
5151

5252
![Document Object Model und Selektor](/images/css-layout/selector-child.png)
5353

54+
Attribute Selector
55+
------------------
56+
57+
58+
Mit dem Attribute Selector kann man Attribute und Werte angeben. Entweder Hier selektieren wir einen Link, dessen href-Attribut mit mailto beginnt:
59+
60+
61+
<css>
62+
a[href^="mailto"] { color: yellow; }
63+
</css>
64+
65+
66+
![Document Object Model und Selektor](/images/css-layout/attr-selector.png)
67+
68+
69+
Es gibt mehrere Varianten dieses Selektors:
70+
71+
<css>
72+
a[href] /* Attribut existiert */
73+
a[href="https://example.com"] /* Attribut hat genau diesen Wert */
74+
a[href^="mailto"] /* Wert beginnt mit ... */
75+
a[href$=".svg"] /* Wert endet mit ... */
76+
a[href*="www"] /* Wert enthält ... */
77+
</css>
78+
79+
80+
81+
82+
5483
Pseudo Classes
5584
---------
5685

57-
Wir haben im Zusammenhang mit Links schon die Pseudo Classes `:link` und
86+
Wir haben im Zusammenhang mit Links schon die Pseudo Classes `:any-link`, `:link` und
5887
`:visited` kennen gelernt, und im Zusammenhang mit Interaktion `:hover` und
5988
`:focus`.
6089

6190
Es gibt noch eine Hand voll weiterer Pseudo Classes:
6291

63-
* `:first-child` selektiert ein Element nur, wenn es das erste Kind seiner Eltern-Node ist
64-
* `:first-letter` selektiert nur den ersten Buchstaben! Das funktioniert auch,
65-
wenn der Buchstabe gar keine eigenen Node in der DOM ist!
66-
* `:first-word` selektiert das erste Wort. Das funktioniert auch,
67-
wenn das Wort gar keine eigenen Node in der DOM ist!
68-
* `::selection` der aktuell ausgewählte Bereich, siehe [css-tricks](http://css-tricks.com/examples/DifferentSelectionColors/)
92+
* `::first-child` selektiert ein Element nur, wenn es das erste Kind seiner Eltern-Node ist
6993
* `:nth-child(odd)` wählt jedes zweite Element aus - 1,3,5,...
7094
* `:nth-child(even)` wählt jedes zweite Element aus - 2,4,6,...
7195

7296

73-
7497
<css>
75-
:first-child { color: yellow; }
98+
::first-child { color: yellow; }
7699
</css>
77100

78101

79102
![Document Object Model und Selektor](/images/css-layout/selector-firstchild.png)
80103

81104

105+
Pseudo Classes ohne DOM Node
106+
---------
107+
108+
Folgende Pseudo Classes selektieren keine DOM Nodes, sondern nur Teile davon:
109+
110+
* `::first-letter` selektiert nur den ersten Buchstaben
111+
* `::first-letter` selektiert die erste Zeile
112+
* `::selection` der aktuell ausgewählte Bereich, siehe [css-tricks](http://css-tricks.com/examples/DifferentSelectionColors/)
113+
114+
115+
116+
<css>
117+
n::first-line { color: yellow; }
118+
</css>
119+
120+
121+
![Document Object Model und Selektor](/images/css-layout/selector-firstline.png)
122+
123+
82124
Has Pseudo Class
83125
-------
84126

134 KB
Loading
229 KB
Loading
91.3 KB
Binary file not shown.
44.1 KB
Loading
152 KB
Loading
264 KB
Loading
91.2 KB
Loading
137 KB
Loading

content/images/css/selectors/application.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export class DOMCSSVisualizer {
117117
const selector = this.selectorInput.value;
118118

119119
// Update specificity display
120-
this.updateSpecificity(selector);
120+
// this.updateSpecificity(selector);
121121

122122
// Set up iframe content
123123
let startNode = this.iframeDoc.body;
@@ -130,6 +130,7 @@ export class DOMCSSVisualizer {
130130
this.iframeDoc.head.appendChild(this.style);
131131

132132
// Apply selector highlighting
133+
console.log("setting style selector to", selector);
133134
this.style.textContent = `${selector} { background-color: rgb(255, 255, 0); }`;
134135

135136
// Clear and rebuild tree

0 commit comments

Comments
 (0)