Stylování <select>u

Odsazení padding

Funguje od Exploreru 8 na značce <select>, na <option>u umí padding jen Firefox.

Barvy

Obarvení <select>u je možné ve všech prohlížečích. Je možné barvit i konkrétní <option> položky. Pokud se tak neučiní, převezmou položky barvu <select>u.

Jak je vidět z ukázky, nastavení pozadí (background) způsobí přepnutí na oldschool vzhled, téhož je možné docílit vlastností border.

Rámeček border

S rámečky není problém. Firefox je umí i pro jednotlivé položky.

V prohlížečích, které podporují kulaté rohy přes border-radius, není problém ani zakulacení.

Šířka a výška

  • Přenastavení rozměrů je taktéž široce podporováno.
  • Problém je s výškou, kdy různé prohlížeče text různě zarovnávají (není možné použít line-height).
  • Zarovnat text u širokého <select>u pomocí text-align: center funguje jen v Opeře 12.
  • Firefox jako jediný umí nastavit výšku i pro položky výběru.

Písmo

Ohledně písma lze nastavit prakticky vše — tučné písmo, kursivu apod., velikost, barvu (jak je zmíněno výše), atd.

Opět to je možné kromě Firefoxu jen pro celý výběr, tj. pro <select>.

Zvýraznění položky

Při najetí na <select> lze klasicky aplikovat :hover. Otevřený <select> získává :focus.

  • V Explorerech do verse 9 včetně nefunguje :hover, do verse 8 včetně ani :focus.
  • Nastavit vlastní styl pro :hover jednotlivých položek se zdá být nemožné.

Vlastní styl šipky

Standardním způsobem není možné změnit styl šipky znázorňující rozevření seznamu (například jí změnit barvu).

Existují ale způsoby, jak to obejít:

appearance: none

CSS vlastnost appearance nastavená na hodnotu none dokáže vypnout výchozí styl formulářového políčka. Tím se mimo jiné docílí, že se nezobrazí šipka pro rozevření.

Vlastní šipku jde potom snadno absolutně naposicovat na požadované místo. Šipka jde vytvořit i přímo v CSS:

Aby na místě posicované šipky šlo <select> prokliknout, je třeba přidat pointer-events: none.

Samostatná ukázka

Závěr

Jak je vidět, stylování je docela omezené. Pro plnou kontrolu je třeba použít atrapu a <select> ovládat JavaScriptem. Problém je, že vytvořit funkčnost shodnou s obyčejným formulářem je docela komplikované. A hotová řešení často věci jako ovládání klávesnicí apod. neumožňují.

Problémům se stylováním se jde často úplně vyhnout, protože selectbox není úplně ideální formulářový prvek a často jde nahradit uživatelsky příjemnějším ovládacím prvkem:

Odkazy jinam

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Stylování atributu title

Vlastní styl bubliny title

Jaké jsou možnosti pro vlastní vzhled nápovědy, která se objevuje při vyplnění atributu title.

Stylovat třídy, nebo elementy?

Stylovat třídy, nebo elementy?

Je lepší stylovat přímo HTML elementy, nebo všechny styly přiřazovat třídami?

Skloňování v CSS

„Programování“ v HTML a CSS

I bez úprav logiky serverového skriptu lze lecčeho dosáhnout samotným CSS.

Stylování tabulky

Stylování HTML tabulek

Jednoduché barvení a další stylování značky <table>.

Vylepšené stylování checkboxů

Pokročilé stylování checkboxu

Díky selektoru :checked lze v podporujících prohlížečích (Explorer 9 a novější) vytvářet zaškrtávací <input>y neotřelé podoby.

Komentáře