CSS průhlednost a nastavení krytí
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

CSS průhlednost a nastavení krytíCSS průhlednost a nastavení krytí

 

CSS průhlednost a nastavení krytí

Google       Google       1. 5. 2008       99 270×

Možná si někdo z vás pokládal otázku, zda lze pomocí CSS zprůhlednit obrázek, nebo text. Možná už se to někomu podařilo, možná ne. My se proletíme od základů CSS transparentnosti přes moře příkladů až po využití v praxi.

Jestli jste někdy překrývali vzorek na pozadí své stránky PNG obrázkem, abyste určitou plochu ztmavili, nebo zesvětlili, dělali jste to zbytečně – CSS práci průhledných PNG obrázků zastane. Stejně jako u PNG obrázků si můžete v CSS nastavit míru průhlednosti, velikost plochy, vzorek na pozadí, obrys… Možná se nyní ptáte, proč je lepší udělat průhlednost přes CSS, než přes grafický formát PNG. Odpověď je velice jednoduchá – starší verze IE vůbec nezvládají formát PNG, bohužel.

Základy CSS průhlednosti

Jak moc chceme mít obrázek průhledný? Chceme, aby byl z 50 % průhledný, nebo úplně neprůhledný? Abych vysvětlil pojmy „průhlednost“ a „neprůhlednost“  – když máme obrázek z 5 % průhledný, znamená to, že je z 95 % neprůhledný (tedy skoro v standardním zobrazení, standard je 100 %). Pokud tedy chceme mít obrázek úplně neprůhledný, potom použijeme CSS zápis opacity: 1.0;. Naopak naprosto průhledný obrázek se bude reprezentovat zápisem opacity: 0.0;.

Jak docílit průhlednosti ve všech prohlížečích?

Průhlednost je jedna z těch věcí, které každý prohlížeč zobrazí úplně jinak (popřípadě vůbec). Pro správné zobrazení ve všech prohlížečích potřebujeme čtyři CSS zápisy, které zajistí správné zobrazení v Internet Exploreru, Firefoxu, Opeře, Safari a Netscape Navigatoru. Zde jsou, všechny jsou nastaveny na průhlednost 50 %:

.pruhledne {
	opacity: 0.5;
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
}
  • opacity: 0.5; – nejdůležitější zápis, protože je to standard v CSS. Tento zápis bude fungovat v nejnovějších verzích prohlížečů Firefox, Safari a Opera. Bylo by to vše, co k průhlednosti potřebujete, kdyby všechny prohlížeče podporovaly běžné standardy.
  • filter: alpha(opacity=50); – tento zápis potřebujete pro správnou funkčnost v IE.
  • -moz-opacity: 0.5; – aby průhlednost podporovaly i starší verze prohlížeče Netscape Navigator, použijete tento zápis.
  • -khtml-opacity: 0.5; – tímto zápisem otevřete cestu k průhlednosti starším verzím prohlížeče Safari.

Příklady průhlednosti textu

Tento text má nastavenou průhlednost na 25 %. Tento text má nastavenou průhlednost na 50 %. Tento text má nastavenou průhlednost na 75 %. Tento text nemá nastavenou průhlednost.

Možná si nyní říkáte, proč takovýto „stupidní“ příklad vůbec uvádím – že je to jasné. Bohužel, není. Průhlednost textu je totiž ještě o něco komplikovanější, než průhlednost obrázků.

Ze zvědavosti jsem si zkusil malý pokus, který mě o průhlednosti textu mnoho naučil.

Pokus s průhledností textu

Nejspíš si myslíte, že když jde tak lehce zprůhlednit obrázek, že to bude s textem podobné (když jsem poprvé viděl průhlednost přes CSS, také jsem si to myslel). Tento pokus mě naučil, že to tak vůbec není.

Tento text má nastavenou průhlednost na 50 %.

.pokus_pruhledne {
	width: 100%;
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
	opacity: 0.5;
}

Všimněte si, že jsme ke čtyřem zápisům transparentnosti přidali ještě zápis šířky (což jsme výše nedělali a vše fungovalo skvěle). To je proto, že průhlednost funguje pouze s přesně specifikovaným rozložením – v IE.

Výše uvedený příklad textu je uzavřen v DIVu. Myslíte, že průhlednost textu bude fungovat, jestliže bude text uzavřen v tagu SPAN?

Ano, avšak pouze se speciálním zápisem zobrazení. Kdybychom chtěli zprůhlednit text ve SPANu, museli bychom do stylů přidat zápis display: block;.

Příklady průhlednosti obrázků

Už výše jsem se zmiňoval o zesvětlení a ztmavení (třeba jen části) obrázku pomocí CSS. Nyní si tento způsob ukážeme v akci.

Máme obrázek jako pozadí DIVu a jeho horní část chceme zesvětlit o 50 % (pomocí CSS). Náš podklad bude mít rozměry 454×180 a bude mít zesvětlený pruh (50px) nahoře. Operovat budeme pouze se 2 DIVy (podklad a DIV, který část obrázku zesvětlí). Náš kód bude vypadat následovně:

<div class="podklad">
	<div class="zesvetleni"></div>
</div>

A CSS zápis:

.podklad {
	width: 454px;
	height: 180px;
	background-image: url(http://programujte.com/galerie/2008/04/200804291654_css_transparent.jpg);
}

.zesvetleni {
	width: 454px;
	height: 50px;
	background-color: #FFFFFF;
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
	opacity: 0.5;
}

A takto bude vypadat naše dílo:

Naprosto stejně budeme postupovat, jestliže budeme chtít část obrázku ztmavit, nebo dokonce nabarvit (barvení již barevných obrázků nepovažuji za zrovna šťastné řešení):

Průhlednost a hover efekty

Dalším praktickým využitím CSS transparentnosti je hover efekt. Žádné scripty, pouze jeden obrázek (nadpis, tabulka…), který se při najetí myší změní.

Zápis do CSS je více než jednoduchý, protože jsme u tohoto příkladu pracovali pouze s průhledností.

a.svetlejsi img {
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
	opacity: 0.5;
}

a.svetlejsi:hover img {
	filter: alpha(opacity=100);
	-moz-opacity: 1.0;
	-khtml-opacity: 1.0;
	opacity: 1.0;
}

/*---*/

a.normal img {
	filter: alpha(opacity=100);
	-moz-opacity: 1.0;
	-khtml-opacity: 1.0;
	opacity: 1.0;
}

a.normal:hover img {
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
	opacity: 0.5;
}

A XHTML kód vypadá následovně:

<a href="#" class="svetlejsi"><img src="http://programujte.com/galerie/2008/04/200804301717_css_transparent3.jpg" width="177" height="132" border="0" /></a>
<a href="#" class="normal"><img src="http://programujte.com/galerie/2008/04/200804301717_css_transparent3.jpg" alt="" width="177" height="132" border="0" /></a>

Průhlednost a onmouseover a onmouseout efekty

Další možnost, kde se dá uplatnit CSS průhlednost, jsou onmouseover a onmouseout scripty.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam sit amet lorem et tellus consequat suscipit. Nunc condimentum facilisis risus.

XHTML kód pro tento příklad je:

<div class="vypnute" onmouseover="this.className='zapnute'" onmouseout="this.className='vypnute'">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam sit amet lorem et tellus consequat suscipit. Nunc condimentum facilisis risus.</div>

A CSS zápis:

div.vypnute {
	width: 450px;
	height: 65px;
	margin: auto;
	background-color: #CCCCCC;
	border: 1px solid #666666;
	color: #000000;
}

div.zapnute {
	width: 450px;
	height: 65px;
	margin: auto;
	background-color: #CCCCCC;
	border: 1px solid #666666;
	color: #000000;
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
	opacity: 0.5;
}

Příklad CSS průhlednosti v praxi

Představte si, že máte nádhernou hlavičku, ale název webu tam chcete napsat obyčejným textem. Jak to udělat, aby to nevypadalo blbě? Jak to udělat zajímavější?

AZ Sekačky

Hezký efekt opět zastal poměrně jednoduchý CSS zápis:

div.text_header {
	width: 454px;
	height: 88px;
	background-image: url(http://programujte.com/galerie/2008/04/200804291654_css_transparent.jpg);
}

div.pruhl_text_header {
	width: 454px;
	font-size: 68px;
	color: #FFFFFF;
	filter: alpha(opacity=75);
	-moz-opacity: 0.75;
	-khtml-opacity: 0.75;
	opacity: 0.75;
}

A kód vypadá následovně:

<div class="text_header">
	<div class="pruhl_text_header" align="center">AZ Sekačky</div>
</div>

Závěrem

Co jsme se naučili a co je důležité si pamatovat

  • Poloprůhledné grafické formáty PNG je dobré nahrazovat CSS transparentností.
  • Zápis průhlednosti vyjadřují čísla od 0.0 až po 1.0 (0.1, 0.8…).
  • Aby bylo dílo průhledné ve věch prohlížečích, musíme použít čtyři CSS zápisy.
  • V IE funguje průhlednost textu pouze s přesně stanovenými rozměry.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Roman Bartoš je grafický designér z Prahy. Zaměřuje se na digitální grafiku, tištěnou grafiku a úpravy fotografií.
Web     Twitter     Facebook    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý