Diskuze: Stylování čísel v číslovaném seznamu
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, žádný konkrétní selektor přímo pro to určený neznám, ale lze toho docílit tak, že „odstraníš“ předdefinované odrážky a za ně si přes pseudoelement :before dosadíš své vlastní, ostylované:
ol {
counter-reset: item;
}
li {
display: block;
}
li:before {
content: counter(item) ". ";
counter-increment: item;
font-weight: bold;
}
S counter-něco jsem nikdy nedělal, je to pěkně těžké na pochopení mi přijde.Prošel jsem si pár webů a zdejší manuál, ale nechápu jednu věc.
ol {
counter-reset: item;
}
Já přeci nebudu potřebovat počítání resetovat(nebo ano?), k čemu je to tedy dobré?
Pokud používáš counter, můžeš si ho představit jako jakousi proměnnou v CSS, která se inkrementuje pokaždé, když je použita u nějakého elementu. Counterů můžeš mít víc (zde jsem ho pojmenoval jako item, ale název může být libovolný, třeba counter(poradi).
Než je ale možné pracovat s nějakým counterem, je nutné ho vytvořit (nastavit jeho hodnotu na 0). To by šlo udělat jen jednou globálně, např. u elementu body:
body {
counter-reset: item;
}
To by ale znamenalo, že bude společný pro všechny prvky na stránce a tudíž, pokud by si měl více číslovaných seznamů za sebou, tak by jejich číslování navazovalo na sebe. Zápis:
ol {
counter-reset: item;
}
prakticky znamená, že pokaždé, když se začne nový seznam, začne se také číslovat od znovu.
Zkoušel jsem to, a v základní verzi výše zmíněný zápis částečně funguje i pro vnořené seznamy:
Pokud by se ale vyžadovalo lepší číslování (2.1., 2.2., ...), je třeba použít dva countery, kde každý bude sloužit pro jednu úroveň seznamu. Na JSFiddle jsem umístil živou ukázku.
li {
display: block;
}
.parent {
counter-reset: parent;
}
.parent > li:before {
content: counter(parent) ". ";
counter-increment: parent;
font-weight: bold;
}
.parent > ol {
counter-reset: child;
}
.parent > ol > li:before {
content: counter(parent) "." counter(child) ". ";
counter-increment: child;
font-weight: bold;
}
Tady už je to trochu problematičtější. Pokud je délka seznamu stanovena předem, můžeš counter nastavit na hodnotu počtu odrážek + 1 a po každé odrážce od counteru odečítat:
ol {
counter-reset: item 4; /* Seznam bude mít 3 položky (3, 2, 1) */
list-style: none;
}
ol li:before {
content: counter(item) ". ";
counter-increment: item -1;
font-weight: bold;
}
V případě, že délka seznamu není pevně dána, nenapadá mě nic jiného, než vytvořit pouhou iluzi toho, že se jedná o převrácený seznam. Jde to přes CSS vlastnost transform, je ale nutné zde také jednotlivé položky psát obráceně (od poslední k první):
ol {
counter-reset: item;
list-style: none;
transform: rotate(180deg);
}
ol li {
transform: rotate(-180deg);
}
ol li:before {
content: counter(item) ". ";
counter-increment: item;
font-weight: bold;
}
Nejideálnější by bylo, kdyby si veškeré seznamy generoval na serveru např. pomocí PHP. Do atributu data-length by si pak mohl uložit velikost seznamu a k té přistoupit v CSS přes vlastnost attr():
ol {
counter-reset: item attr(data-length);
counter-increment: item;
list-style: none;
}
ol li:before {
content: counter(item) ". ";
counter-increment: item -1;
font-weight: bold;
}
Zde jsou živé ukázky na všechny tři způsoby.
Páni, to by mě nenapadlo, to je fakt zajímavý řešení
Koukal jsem tedy jen na tu
druhou možnost, protože to je to, co potřebuju...
Děkuju moc 
Zobrazeno 10 zpráv z 10.
