
Jednoduché filtrování dat v čistém CSS
Při filtrování malého množství položek si lze od Internet Exploreru 9 vystačit jen s CSS.
- Michael Schumacher
- Fernando Alonso
- Kimi Räikkönen
- Lewis Hamilton
- Jenson Button
- Sebastian Vettel
- David Coulthard
- Mark Webber
Jak?
Využívá se:
- selektoru
:checked(pro vybraný formulářový prvekradionebocheckbox), - selektoru
~(libovolný sourozenec), - obyčejných tříd – každá položka má třídy podle příslušné skupiny (jedna položka může (ale nemusí) patřit do více skupin).
<li class="ferrari mercedes">Michael Schumacher</li>
Na začátku se všechny položky skryjí (display: none) a při
input#id-inputu:checked ~ ul .nazev-prislusne-tridy {display: list-item}
… se opět objeví.
Důležité je, aby se bylo jak dostat z input:checked na jednotlivé položky, <input> proto nemůže být hlouběji zanořen.
Starší prohlížeče
Aby se v nepodporovaných prohlížečích zobrazil alespoň seznam bez možnosti filtrování, položky se schovávají přes :not(:checked). Pokud je tedy prohlížeč dokáže skrýt, dokáže je i zobrazit.
Vyřešit funkčnost pro starší Explorery a jiné by mohl vyřešit jednoduše JS:
- Při kliknutí na
<input>nastavit pro jeho rodiče (this.parentNode) třídu (className) třeba dle identifikátoru (this.id), - zjednodušit CSS a položky zobrazovat při
.trida-rodice .trida-skupiny {}.
A nebo vytvořit plnohodnotný formulář a data posílat vyfiltrovat na server.
Vyhledávání textu na stránce
Se špetkou JavaScriptu je možné na webu vyhledávat.
Související články
Možnosti stylování <iframe>
Co lze a nelze u <iframe> ovlivnit pomocí CSS a jak na změnu textu nebo barev.