Skip to content

Commit a12fafd

Browse files
committed
sesta: has a layers
1 parent e3594cb commit a12fafd

File tree

4 files changed

+110
-6
lines changed

4 files changed

+110
-6
lines changed

KAJ/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ <h2>Přednášky</h2>
9191
<li><a href="prednasky/09/">Offline; HTML značky &lt;svg&gt; a &lt;audio&gt;</a></li>
9292
<li><a href="prednasky/10/">HTML značky &lt;video&gt; a &lt;canvas&gt;</a></li>
9393
<li><a href="prednasky/11/">Další JavaScriptová API</a></li>
94-
<li><a href="prednasky/12/">Web Components</a></li>
94+
<li><a href="prednasky/12/">Web Components a CSS Nesting</a></li>
9595
<li><a href="prednasky/13-server-side-js/">JS na serveru</a></li>
9696
9797
<li><a href="prednasky/13-dalsi-api/">Další, obskurnější JS API</a></li>

KAJ/prednasky/06/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
content: "✘ ";
1919
color: red;
2020
}
21+
22+
.cascade img {
23+
float: right;
24+
height: 700px;
25+
}
2126
</style>
2227
</body>
2328
</html>

KAJ/prednasky/06/index.md

Lines changed: 101 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
1. Vývoj CSS
88
1. Selektorový jazyk
99
1. Generovaný obsah
10-
1. Media queries
10+
1. Media queries a responsive design
11+
1. CSS Layers
1112
1. Preprocessing
1213

1314
---
@@ -44,7 +45,7 @@ Obecně není možné vytvářet selektory, pro jejichž vyhodnocení potřebuje
4445

4546
Valná většina selektorů se tedy týká uzlů samotných, jejich rodičů či předchůdců.
4647

47-
Toto pravidlo bude v budoucnu porušováno teprve plnou podporou selektoru `:has`.
48+
Toto pravidlo ~~bude v budoucnu~~ je porušováno teprve plnou podporou selektoru `:has`.
4849

4950
---
5051

@@ -202,6 +203,32 @@ input:not([required]) { color: blue; }
202203

203204
---
204205

206+
# Selektorový jazyk &ndash; pseudotřídy
207+
208+
- `:is()` = sjednocení
209+
210+
```css
211+
:is(li, p, a) { font-weight: bold; } /* stejné jako bez is() */
212+
213+
:is(header, footer) :is(a, em, strong) { color: lime; } /* cekem 6 kombinací
214+
```
215+
216+
---
217+
218+
# Selektorový jazyk &ndash; pseudotřídy
219+
220+
- `:has()` = výběr rodiče za předpokladu existence potomka
221+
222+
```css
223+
label:has(:checked) { font-weight: bold; }
224+
225+
h1:has(+ p) { margin-bottom: 0; }
226+
227+
p:has(img, a) { border-left: 3px solid salmon; }
228+
```
229+
230+
---
231+
205232
# Selektorový jazyk &ndash; pseudoprvky
206233
207234
- `::first-line` = první řádek textu
@@ -387,6 +414,73 @@ maximum-scale, minimum-scale, user-scalable
387414
388415
---
389416
417+
# CSS Layers
418+
419+
- Nástroj pro snazší řešení problémů se *specificitou* selektorů
420+
- Často není nezbytné, ale může se hodit
421+
- [Přednáška o CSS Layers](https://ondras.zarovi.cz/slides/2022/css-layers-webexpo/)
422+
423+
---
424+
425+
# CSS Layers
426+
427+
```html
428+
<form>
429+
<button type=submit disabled>Odeslat</button>
430+
</form>
431+
```
432+
433+
```css
434+
form button[type=submit] {
435+
background-color: dodgerblue;
436+
}
437+
438+
button:disabled {
439+
background-color: gray;
440+
}
441+
```
442+
443+
---
444+
445+
# CSS Layers
446+
447+
![](https://ondras.zarovi.cz/slides/2022/css-layers-webexpo/img/cascade.svg) {.cascade}
448+
449+
Kaskáda: jak poznat, které z kolidujících pravidel má přednost?
450+
451+
(následně: jak zařídit, aby to bylo jinak?)
452+
453+
---
454+
455+
# CSS Layers
456+
457+
Pomocí syntaxe `@layer` lze explicitně přednost aplikace pravidel řídit
458+
459+
```css
460+
@layer muj-projekt {
461+
form button[type=submit] {
462+
background-color: dodgerblue;
463+
}
464+
}
465+
466+
@layer docasne-stavy {
467+
button:disabled {
468+
background-color: gray;
469+
}
470+
}
471+
```
472+
473+
---
474+
475+
# CSS Layers
476+
477+
- Mnoho dalších variant zápisu a pravidel
478+
- Zanořování
479+
- Oddělení deklarace a definice vrstev
480+
- Nezvyklá kombinace s přívlastkem `!important`
481+
482+
---
483+
390484
# Vendor prefix #1
391485
392486
- Problém: výrobce chce podporovat technologii, která není plně standardizovaná
@@ -448,9 +542,12 @@ p a {
448542
449543
# Preprocessing: Less.js
450544
451-
- Velké množství (dalších) možností rozšíření jazyka
452-
- Aplikace buď na straně serveru, nebo automaticky pomocí JS knihovny
453545
- Podobných nástrojů je celá řada (SASS, Compass, PostCSS, &hellip;)
546+
- Důvody pro existenci:
547+
- ~~Proměnné~~ (viz osmá přednáška)
548+
- ~~Zanořování~~ (viz dvanáctá přednáška)
549+
- ~~Barevná aritmetika~~ (viz [CSS Relative Colors](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_colors/Relative_colors))
550+
- Bundling
454551
455552
---
456553

KAJ/prednasky/12/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# KAJ 12: Web Components
1+
# KAJ 12: Web Components a CSS Nesting
2+
3+
FIXME nesting
24

35
---
46

0 commit comments

Comments
 (0)