CSS průhlednost (opacity)

Používat úspěšně opacity je možné od Internet Exploreru 9; ve starších lze totéž simulovat filtrem.

.pruhledny {
  filter: alpha(opacity=50); /* 50 ze 100 = 50% průhlednost */
  opacity: 0.5; /* 0.5 z 1 = 50% průhlednost */
}

Vlastnost opacity nabývá hodnot od nuly do jedné:

  • 0 – element je úplně průhledný (není vidět, ale na stránce překáží, tj. jako by se použilo visibility: hidden),
  • 1 – element není vůbec průhledný (jako by se nic nenastavilo),
  • 0.5 (popř. zkráceně .5) – element je průhledný z poloviny.

Pro Exploreří filter: alpha(opacity=X) je to podobné, jen hodnota rovnou v procentech.

Za elementem .pruhledny bude vykukovat (prosvítat) pozadí.

Průhledný element

Nefunkční filter: alpha(opacity=50) v IE

Ve starších Explorerech (IE7) občas zprůhlednění přes vlastnost filter nemusí fungovat.

Starší IE totiž neumí aplikovat filtry na elementy, co nemají layout (hasLayout), řešení je prosté — layout zapnout — třeba vlastností zoom:

.pruhledny {
  zoom: 1; /* zapnutí hasLayoutu pro IE */ 
  filter: …
}

Průhledný obsah, neprůhledný text

Jak je vidět na předchozí ukázce, průhledné je úplně vše. Jelikož text není moc dobře čitelný, hodilo by se mít průhledný pouze obsah.

Průhledná barva — rgba(…)

Od IE9 se při zápisu barev dá použít zprůhlednění. (Ekvivalent rgba bez průhlednosti je rgb a funguje spolehlivě napříč prohlížeči.)

Barva se zadá čtyřmi parametry:

Rred – červená rozmezí 0–255 nebo 0%–100%
Ggreen – zelená rozmezí 0–255 nebo 0%–100%
Bblue – modrá rozmezí 0–255 nebo 0%–100%
Aaplha – průhlednost hodnota v rozmezí 0–1

Následující elementy mají stejnou barvu, ale jinak nastavenou její průhlednost.

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Nastavování barev dle průhlednosti se může hodit při návrhu webu, když se ještě neví, co bude jak přesně barevné. Nebo v případě, kdy chceme více barevných versí. Stačí určit barevné pozadí a jednotlivé barvy zadávat jako černou nebo bílou o určité průhlednosti. Když se potom přebarví pozadí, přebarví se tak i všechny průhledné barvy.

Absolutně posicovaný element s opacity

Druhá možnost, jak docílit průhledného pozadí bez průhledného textu, je si připravit samotný průhledný element a za text jej naposicovat a z-indexem přemístit za text (nutno dát pozor, aby se nedostal ještě níže než za požadovaný text – řešení je zvýšit z-index pro obal).

Výsledek by měl být v podporovaných prohlížečích totožný; v nepodporovaných, tj. IE8, IE7 apod., by na rozdíl od předchozího příkladu tato ukázka měla fungovat.

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný obrázek

Další řešení výše uvedeného nebo jen řešení situace, kdy nestačí obyčejné jednobarevné pozadí, je vytvoření průhledného obrázku v grafickém editoru (příklad obrázku), který se nastaví jako pozadí (background).

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

Průhledný element

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ářů ↓

Column – obsah ve sloupcích

Vícesloupcový text a column

CSS vlastnost column umožňuje rozdělení textu do více sloupců.

Rotace

Rotace obsahu

Napříč prohlížeči funkční řešení vytvoření svislého textu (otočeného o 90 stupňů).

Kulaté rohy

Kulaté okraje v CSS

Jak vytvořit v CSS zaoblené okraje.

Filtr blur

Rozmazání obsahu

Rozmazávání obsahu v různých prohlížečích.

CSS zoom

Zvětšení a zmenšení v CSS

Jak v CSS zoomovat (zvětšovat a zmenšovat) elementy.

Komentáře