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

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

 

CSS průhlednost a nastavení krytí

Google       Google       1. 5. 2008       84 713×

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.

Reklama
Reklama

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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý