|
7 | 7 | 1. Vývoj CSS
|
8 | 8 | 1. Selektorový jazyk
|
9 | 9 | 1. Generovaný obsah
|
10 |
| - 1. Media queries |
| 10 | + 1. Media queries a responsive design |
| 11 | + 1. CSS Layers |
11 | 12 | 1. Preprocessing
|
12 | 13 |
|
13 | 14 | ---
|
@@ -44,7 +45,7 @@ Obecně není možné vytvářet selektory, pro jejichž vyhodnocení potřebuje
|
44 | 45 |
|
45 | 46 | Valná většina selektorů se tedy týká uzlů samotných, jejich rodičů či předchůdců.
|
46 | 47 |
|
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`. |
48 | 49 |
|
49 | 50 | ---
|
50 | 51 |
|
@@ -202,6 +203,32 @@ input:not([required]) { color: blue; }
|
202 | 203 |
|
203 | 204 | ---
|
204 | 205 |
|
| 206 | +# Selektorový jazyk – 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 – 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 | +
|
205 | 232 | # Selektorový jazyk – pseudoprvky
|
206 | 233 |
|
207 | 234 | - `::first-line` = první řádek textu
|
@@ -387,6 +414,73 @@ maximum-scale, minimum-scale, user-scalable
|
387 | 414 |
|
388 | 415 | ---
|
389 | 416 |
|
| 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 | + {.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 | +
|
390 | 484 | # Vendor prefix #1
|
391 | 485 |
|
392 | 486 | - Problém: výrobce chce podporovat technologii, která není plně standardizovaná
|
@@ -448,9 +542,12 @@ p a {
|
448 | 542 |
|
449 | 543 | # Preprocessing: Less.js
|
450 | 544 |
|
451 |
| - - Velké množství (dalších) možností rozšíření jazyka |
452 |
| - - Aplikace buď na straně serveru, nebo automaticky pomocí JS knihovny |
453 | 545 | - Podobných nástrojů je celá řada (SASS, Compass, PostCSS, …)
|
| 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 |
454 | 551 |
|
455 | 552 | ---
|
456 | 553 |
|
|
0 commit comments