Prvek je průhledný. Vlastnost CSS opacity: řídí průhlednost. Jak zprůhlednit prvek a odstranit průhlednost v CSS

orem Ipsum je prostě fiktivní text tiskařského a sazebního průmyslu. Lorem Ipsum je standardním fiktivním textem v tomto odvětví již od 16. století, kdy neznámá tiskárna vzala galéru písma a zakódovala ji, aby vytvořila vzorník písma. Přežila nejen pět století, ale také skok do elektronické sazby. Byl popularizován v 60. letech 20. století vydáním listů Letraset obsahujících pasáže Lorem Ipsum a v poslední době se softwarem pro stolní publikování, jako je Aldus PageMaker včetně verzí Lorem Ipsum.
Je již dávno potvrzeným faktem, že čtenáře při pohledu na její rozložení rozptyluje čitelný obsah stránky. Smyslem použití Lorem Ipsum je, že má víceméně normální rozložení písmen, na rozdíl od použití „Obsah zde, obsah zde“, takže to vypadá jako čitelná angličtina. Mnoho balíčků DTP a editorů webových stránek nyní používá Lorem Ipsum jako svůj výchozí modelový text a hledání „lorem ipsum“ odhalí mnoho webových stránek, které jsou stále ještě v plenkách. Během let se vyvinuly různé verze, někdy náhodou, někdy záměrně (vstříknutý humor a podobně).

Takže dnes budeme mluvit o průhlednost v html stránky. Pravděpodobně jste se již setkali s průhlednými vyskakovacími bloky, ať už jde o fotogalerii nebo přihlašovací formuláře na některém oblíbeném webu. Transparentnost v HTML má mnoho využití. Jak se tedy vyrábí a kde se dá použít?

Nejprve si uvědomme, že náš dokument nemá pouze jednu rovinu monitoru - je obecně 3-rozměrný, o tom jsem se zmínil v článku „Z-index“. V souladu s tím by i zcela průhledná vrstva, pokud by byla v horní části sady displejů, blokovala přístup k dalším prvkům. Toto je jedno z hlavních použití průhledných bloků. I když se většinou používá efekt stínování, úplně stejně bude fungovat i zcela průhledná vrstva. Funguje tedy například spousta oblíbených fotogalerií, je uspořádána stínovaná vrstva, ve které se zobrazují fotografie a ovládací prvky k nim. Zbytek stránky je „pokryt“ (polo)průhlednou vrstvou, která blokuje přístup ke všem ostatním prvkům na stránce. Tito. Stránku nebudete moci opustit kliknutím na jakýkoli odkaz na ní - veškerý text je pokryt pozadím. Pro návrat do těla webu obvykle poskytují ovládací prvky pro uzavření galerie, přihlašovací formulář atd. Ovládání zobrazení/skrytí průhledných bloků pomocí javascriptu. Bohužel k němu neexistuje žádná alternativa. Bez použití jej uživatel buď vůbec neuvidí průhledný blok nebo jej nebude možné zavřít bez opuštění aktuální stránky. Podotýkám, že k tomu slouží vlastnosti viditelnosti nebo zobrazení.

Jak je tedy transparentnost vlastně uspořádána v html? Nastavení průhlednosti prvku obecně není součástí specifikace CSS, takže k jeho vytvoření musíte použít několik pokynů najednou. Některé prohlížeče (tj.) budou pracovat s jednou možností, jiné s jinou. Tj. využívá vestavěnou funkcionalitu filtru, ostatní prohlížeče používají vlastnost "opacity", která se nastavuje v rozsahu od 0 (zcela průhledný objekt) do 1 (zcela neprůhledný). Například v případě 30% průhlednosti byste měli napsat " krytí: 0,30; filter:alpha(opacity=30);". Vlastnosti, jak je vidět z příkladu, jsou podobné - pouze v prvním případě se použije číslo od 0 do 1, ve druhém se použije procentuální zápis. Příklad takového bloku:

<div styl = "position:absolute; top: 0; left: 0; background-color:rgb(18, 114, 214); width:100%; id = "VideoFrame" >

V příkladu je použit blok zobrazení videa, který se aktivuje po kliknutí na miniaturu videa. Výška bloku není specifikována, protože se může lišit v závislosti na velikosti obrazovky a obsahu stránky. Proto se při otevírání videa počítá dynamicky. Příklad použití této techniky lze vidět na hlavní stránce webu ruscircus.ru, na kterém jsem svého času pracoval.

To je ve skutečnosti celé tajemství transparentnosti v html. K dosažení transparentního efektu používáme z-index a neprůhlednost. A pro to najdete mnoho aplikací - vše je zde omezeno pouze vaší představivostí.

08.02.2013 Odpovím na otázky položené v komentářích, a to jak udělat neprůhledný na průhledném bloku. Všechno je zde jednoduché, ne nadarmo jsem v materiálu uvedl odkaz na materiál o z-indexu, musíte vytvořit další blok s vyšším z-indexem než transparentní. Nyní jsem za pár minut načrtl příklad. Bloky:

<div styl = "position:absolute; top: 0; left: 0; background-color:rgb(18, 114, 214); width:100%; height:100%; krytí: 0,30; filter:alpha(opacity=30); viditelnost:skrytá; z-index:1;" id = "VideoFrame" > <div id = styl "VideoFrame2" = "pozice:absolutní; nahoře: 25%; vlevo: 25%; barva pozadí: bílá; šířka:50%; výška:50%; neprůhlednost: 0,99; filter:alpha(opacity=99); viditelnost:skrytá; z-index:2;" onclick = "javascript:HideForm();" > Zde píšeme text</div>

A funkce javascriptu

< script type= "text/javascript" >function ShowForm() ( document.getElementById ("VideoFrame" ) .style .visibility = "visible" ; document.getElementById ("VideoFrame2" ) .style .visibility = "visible" ; ) funkce HideForm() ( document.getElementById (" VideoFrame" ) .style .visibility = "hidden" ; document.getElementById ("VideoFrame2") .style .visibility = "hidden" ; )

První funkce zobrazí průhledný blok (spolu s neprůhledným textovým blokem) - lze jej svázat s tlačítkem. odkaz atd.. Druhá funkce, kterou mám, je svázána s kliknutím myši na blok s textem - skryje průhledný blok.

Doufám, že jsem trochu objasnil, jak to funguje. No, pokud ne, ptejte se.

Vlastnost CSS 3 neprůhlednost umožňuje zprůhlednit jeden nebo jiný prvek webu.

Míra průhlednosti prvku je určena hodnotou od 0 před 1 Kde 0 - zcela transparentní 1 – vůbec neprůhledné.. Tedy například význam 0.5 vlastnosti neprůhlednost aplikovaný na obrázek bude znamenat, že tento obrázek by měl být průsvitný.





Průhlednost










Transparentnost v IE

Internet Explorer nepodporuje vlastnosti neprůhlednost až do deváté verze má však vlastní filtr, kterým můžete nastavit míru průhlednosti:

filtr: alfa(neprůhlednost=50)

Význam neprůhlednost filtr prohlížeče Internet Explorer se může lišit od 0 - zcela transparentní 100 - neprůhledné





Transparentnost v IE



Bloky tohoto menu budou průsvitné i při najetí myší v IE!!


Domov
Mapa stránek
Kupte si slona
Prodej slona
Půjčte si slona

Předpony.

V zásadě by to mohl být konec kapitoly o transparentnosti, ale rád bych vám také řekl o tzv předpony dodavatele.. tito soudruzi nemají k této kapitole žádný zvláštní vztah, ale jak budete postupovat v učení CSS3, budou se objevovat stále častěji a musíte si o nich někde promluvit – tak vám to řeknu zde.

Předpony dodavatele jsou tedy speciální předpony vlastností CSS používané prohlížeči pro experimentální vlastnosti, které nejsou oficiálně zahrnuty ve specifikaci CSS.

Pamatujeme si, že specifikace CSS 3 je stále ve vývoji a formálně vlastnosti popsané v tomto tutoriálu v přírodě neexistují, ale prohlížeče je již aktivně používají na vlastní nebezpečí a riziko.

Proč na vlastní nebezpečí? Ano, protože existuje možnost, že když bude specifikace CSS 3 oficiálně schválena, vlastnosti v ní popsané se budou svým účinkem lišit od vlastností se stejným názvem, které již prohlížeče používají. No, pojďme se zbláznit a nechme vývojáře specifikace CSS 3, aby určili vlastnost neprůhlednost ne jako stupeň průhlednosti bloku, ale například jako jeho stínování nebo blikání (samozřejmě píšu nesmysly), které pak zobrazí miliony již nainstalovaných prohlížečů, pro které neprůhlednost Je to transparentnost?

Nebo řekněme, že vývojáři prohlížečů přišli s vlastní vlastností – inovací, kterou nikdo jiný nikde nemá, ale dokument s takovou vlastností neprojde kontrolou platnosti, protože taková vlastnost není ve specifikaci.

Z těchto a dalších důvodů prohlížeče předponují vlastnosti, které nejsou součástí oficiální specifikace. Každý prohlížeč má svou vlastní předponu začínající znakem „-“, tento znak na začátku vlastnosti, stejně jako znak „_“ podle specifikace CSS 2.1 znamená, že vlastnost je vyhrazena pro rozšíření CSS určitých prohlížeče.

Zde jsou nejoblíbenější prohlížeče a jejich předpony:

ProhlížečPředpona
Opera-Ó-
Firefox, SeaMonkey, Camino-moz-
Internet Explorer 8 a vyšší-slečna-
Safari až do verze 3, Konqueror-khtml-
Safari 3 a vyšší, Google Chrome-webkit-

Je velmi snadné používat předpony, stačí vzít libovolnou vlastnost CSS a nahradit ji požadovanou předponou, například vlastností neprůhlednost nahradit -moz- ukazuje se: -moz-opacity

I když ve skutečnosti můj výraz " používat předpony"špatně! ve skutečnosti se nikde nic nenahrazuje, je tam prostě vlastnost neprůhlednost, je tady -moz-opacity a to jsou dvě různé vlastnosti, které nemusí nutně plnit stejnou funkci!! - to by se mělo chápat..

Měli byste také pochopit, že určité konkrétní prohlížeče, až do určitých verzí, mohou podporovat vlastnosti CSS pouze s vlastními předponami (opět se vyjadřuji špatně, je správné říkat vaše vlastní vlastnosti - rozšíření CSS prohlížeče) a mohou se zpočátku spolehnout o specifikacích, i když jsou vyvíjeny. – V této učebnici se budeme zabývat každým konkrétním případem zvlášť.

Pokud jde o tuto kapitolu o transparentnosti, je třeba poznamenat, že Firefox 3.5 a jeho dřívější verze používají svou vlastní vlastnost -moz-opacity a prohlížeč Safari do verze 1.1 používá jeho vlastnost -khtml-opacity .

Aby byl náš příklad zcela kompatibilní s různými prohlížeči, musíme do kódu přidat několik řádků:





Předpony a průhlednost





Jak vidíte, prefixy značně natahují kód a jejich použití není vždy opodstatněné, pokud jsou verze prohlížečů, které chtějí pracovat s určitými vlastnostmi pouze pomocí svých prefixů, poměrně staré, jako je tomu u vlastnosti neprůhlednost, pak je nemusíte uvádět.. – i když je to samozřejmě špatná rada..

Tak a teď pár užitečných rad...

Vždy používejte prefixy (pokud se bez nich samozřejmě konkrétní prohlížeč neobejde) v případech, kdy použitá vlastnost může výrazně ovlivnit výkon, čitelnost a použitelnost webu. Něco jiného je, když některé drobnosti v designu webu nefungují, a něco jiného, ​​když například nefunguje menu webu nebo není možné přečíst text na webu kvůli tomu, že prohlížeč nefunguje. podporuje nějakou vlastnost a místo toho používá podobnou vlastní.

Transparentnost v CSS je v poslední době poměrně trendy technika, která způsobuje potíže při implementaci napříč prohlížeči. Univerzální metoda, která by umožnila implementovat transparentnost pro všechny prohlížeče, stále neexistuje. V poslední době se však situace výrazně zlepšila.

Tento článek poskytuje podrobný pohled na existující přístupy a také příklady kódu a vysvětlení, které vám pomohou dosáhnout stejného výsledku ve všech prohlížečích s minimálním úsilím.

Jedna věc, která stojí za zmínku, je, že ačkoli transparentnost existuje již několik let, nikdy nebyla součástí standardu CSS. Jedná se o nestandardní vlastnost, která by měla být součástí specifikace CSS3.

Starý přístup

Ve starších verzích Firefoxu a Safari musíte vlastnost použít následovně:

#myElement ( -khtml-opacity: .5; -moz-opacity: 0.5; )

Vlastnost -khtml-opacity byla použita ve starších verzích prohlížečů webkit. Tato vlastnost byla zastaralá a již není potřeba, pokud si nejste jisti, že značná část návštěvnosti vašich stránek pochází od návštěvníků používajících Safari 1.x, což je samozřejmě nepravděpodobné.

Další řádek používá vlastnost -moz-opacity, která fungovala na velmi raných verzích enginu Mozilla. Firefox ji přestal podporovat ve verzi 0.9.

Transparentnost CSS ve Firefoxu, Safari, Chrome a Opeře

Pro většinu moderních prohlížečů stačí použít následující vlastnost:

#myElement ( neprůhlednost: .7; )

Ve výše uvedeném příkladu je prvek nastaven na 70% neprůhlednost (30% průhlednost). To znamená, že pokud nastavíme hodnotu na jedničku, prvek bude neprůhledný, a proto nastavením této hodnoty na nulu bude neviditelný.

Vlastnost opacity zpracovává 2 desetinné číslice. To znamená, že hodnota ".01" se bude lišit od hodnoty ".02", i když to není patrné.

Transparentnost CSS pro Internet Explorer

Internet Explorer jako obvykle není přátelský k ostatním prohlížečům. Kromě toho máme nyní tři verze tohoto prohlížeče v poměrně rozšířeném používání, přičemž nastavení průhlednosti v každé z nich je jiné a někdy vyžaduje další úsilí, aby bylo dosaženo pozitivního výsledku.

#myElement ( filtr: alpha(opacity=40); )

Tento příklad používá vlastnost filter, která funguje ve verzích 6-8, avšak pro verze 6 a 7 existuje jedno omezení: vlastnost hasLayout prvku musí být nastavena na hodnotu true . Tato vlastnost je přítomna pouze v IE a více se o ní dočtete například na Habré.

Dalším způsobem, jak nastavit průhlednost pomocí CSS v IE8, je použít následující přístup (všimněte si komentářů):

#myElement ( filtr: progid:DXImageTransform.Microsoft.Alpha(opacity=40); /* funguje v IE6, IE7 a IE8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; / * pouze pro IE8 */ )

První řádek bude fungovat ve všech aktuálně používaných verzích, druhý - pouze v IE8. Všimněte si, že druhý řádek používá předponu -ms- a hodnota je v uvozovkách.

Nastavení a změna transparentnosti CSS pomocí JavaScriptu nebo jQuery

K nastavení průhlednosti můžete použít následující kód:

Document.getElementById("myElement").style.opacity = ".4"; // pro většinu prohlížečů document.getElementById("myElement").style.filter = "alpha(opacity=40)"; // pro IE

V tomto případě je samozřejmě mnohem jednodušší používat jQuery, navíc bude fungovat ve všech prohlížečích:

$("#myElement").css(( opacity: .4 )); // funguje ve všech prohlížečích

Tuto vlastnost můžete animovat:

$("#myElement").animate(( opacity: .4 ), 1000, function() ( // Animace je dokončena; tento kód funguje ve všech prohlížečích. ));

funkce RGBA

CSS3 plánuje podporovat alfa kanály pomocí funkce rgba. Tato funkce funguje ve Firefoxu 3+, Opeře 10.1+, Chrome 2+, Safari 3.1+. Používá se takto:

#rgba ( pozadí: rgba(98, 135, 167, .4); )

V tomto případě poslední parametr udává úroveň krytí.

funkce HSLA

Podobně jako u předchozí funkce i CSS3 umožňuje nastavit poloprůhlednou barvu pomocí funkce HSLA, jejíž parametry jsou Hue, Saturation, Lightness a Alpha channel.

#hsla ( pozadí: hsla(207, 38 %, 47 %, .4); )

Důležitým bodem při používání funkcí rgba a hsla je, že nastavení průhlednosti se nepoužije na podřízené prvky, zatímco použití vlastnosti opacity je zděděno.

Chcete-li ovládat průhlednost prvků stránky, použijte vlastnost neprůhlednosti CSS. Podle specifikace se vztahuje na jakýkoli typ uzlu a je podporován ve všech moderních prohlížečích. S jeho pomocí můžete vytvořit zajímavý design nebo implementovat pohodlnou interaktivní interakci uživatele.

Možné hodnoty

Syntaxe vlastnosti opacity v css vypadá takto:

Selektor (neprůhlednost: 1; ) Selektor (neprůhlednost: 0; ) Selektor (neprůhlednost: 0,4; )

Vstup přijímá číselné hodnoty v rozsahu od 0 do 1. Parametr může představovat zlomky jedné, zatímco tečka se používá jako oddělovač pro celé číslo a zlomkové části v CSS.

Prvek s nulovou průhledností se stane neviditelným, ale stále zaujímá své místo na stránce a zachovává si možnost interakce s uživatelem.

Pokud je hodnota vlastnosti nenulová, pak se skutečná průhlednost vypočítá jako procento z nějaké horní hranice. V normální situaci neprůhlednost: 1 určuje úplnou neprůhlednost prvku.

Transparentnost podřízených uzlů

Pokud však prvek má nadřazeného prvku, jehož průhlednost je jiná než jedna, výpočet se změní. Potomek nemůže být „méně průhledný“ než kterýkoli z jeho předků. Hodnota vlastnosti CSS opacity nadřazeného bloku se stane horním limitem krytí podřízeného uzlu.

Rodič (neprůhlednost: 0,7; ) podřízený (neprůhlednost: 1; )

V této situaci bude podřízený prvek z 30 % průhledný, i když je hodnota neprůhlednosti jedna.

Příklady použití

Příklad 1: Průsvitnost. Je nutné, aby pod cílovým prvkem bylo vidět hlavní pozadí bloku.

Cíl (pozadí: černé; neprůhlednost: 0,5; )

Zprůhlední se nejen pozadí cílového bloku, ale i text.

Příklad 2: Dynamická kontrola průhlednosti. Hodnota vlastnosti CSS opacity cílového bloku se změní, když na něj najedete myší.

Cíl ( krytí: 0,2; ) .target:hover ( neprůhlednost: 1; )

Dynamická průhlednost

Poslední příklad demonstruje, že průhledné prvky nadále reagují na události stránky, jako je najetí myší. To vám umožňuje používat javascript k ovládání vlastnosti neprůhlednosti CSS a také používat přechodové a animační mechanismy pro plynulou změnu režimu zobrazení.

Chcete-li získat přístup k průhlednosti ze skriptu, musíte získat přístup k objektu stylu konkrétního prvku.

// získání aktuální hodnoty průhlednosti var opacity = element.style.opacity; // nastavení nové hodnoty element.style.opacity = 0.4;

Hladkého zmizení bloku lze dosáhnout pomocí vlastnosti přechodu CSS:

Element ( krytí: 0,1; přechod: neprůhlednost 1000 ms; ) element:hover ( neprůhlednost: 0,8; přechod: neprůhlednost 2 000 ms; )

Nyní uzel prvku při najetí myší změní během jedné sekundy průhlednost z 10 na 80 % a když kurzor opustí, během dvou sekund ztmavne na původní hodnotu.

Vlastnost CSS opacity v kombinaci s mechanismem přechodu umožňuje vytvářet krásné efekty.

Alfa kanál místo neprůhlednosti

Hlavní jemnosti mechanismu neprůhlednosti v CSS:

  • jeho účinek se rozšiřuje nejen na pozadí bloku, ale také na jeho textový obsah, který je nejlépe ponechán čistý;
  • podřízené prvky nemohou být méně průhledné než jejich rodičovské prvky.

Pokud tyto efekty komplikují život návrháře rozvržení, místo neprůhlednosti byste měli použít jednoduché průhledné pozadí, které definuje jeho hodnotu ve formátu RGBA nebo HSLA.

Vlad Merževič

Průsvitný efekt prvku je jasně viditelný na obrázku na pozadí a rozšířil se v různých operačních systémech, protože vypadá stylově a krásně. Ve webdesignu se také používá průsvitnost a dosahuje se jí prostřednictvím vlastnosti opacity nebo formátu barev RGBA, který je nastaven pro pozadí.

Přechodový blok

Vytvořte blok zobrazený na obr. 1. Blok obsahuje průsvitný rámeček s přechodem s pozadím s přechodem pod nadpisem a malým ukazatelem. Pozadí na stránce je uvedeno pouze pro přehlednost efektu průsvitnosti, můžete označit libovolný vlastní obrázek. Minimální výška bloku je 100px.

Jak udělat vrstvu poloprůhlednou?

Pro změnu stupně průhlednosti prvku použijte vlastnost opacity style s hodnotou od 0 do 1, kde 0 odpovídá plné průhlednosti a 1 naopak neprůhlednosti objektu. Tato vlastnost nefunguje v Internet Exploreru, takže pro ni musíte použít filtr, vlastnost, která není součástí specifikace CSS. Příklad 1 ukazuje, jak nastavit průhlednost vrstvy pro všechny prohlížeče.

Průsvitné pozadí

Vlad Merževič

Částečná průhlednost při správném použití vypadá v designu webových stránek velmi působivě. Hlavní věc je, že pod průsvitnými bloky není monochromatický design, ale obraz, v tomto případě je průhlednost patrná. Tohoto efektu je dosaženo mnoha způsoby, a pokud si pamatujete všechny, včetně staromódních metod, je to použití obrázku PNG jako pozadí, vytvoření kostkovaného obrázku a vlastnosti opacity. Jakmile ale vznikne potřeba udělat v bloku průsvitné pozadí, mají tyto metody nepříjemnou nevýhodu. Udělám krátkou recenzi, aby bylo jasné, o čem mluvíme, a také pro ty čtenáře, kteří nejsou obeznámeni s netradičními možnostmi vytvoření průsvitného efektu.

Jak nastavit tabulku, aby byla průsvitná, ale některé buňky nejsou?

Pro změnu průhlednosti prvku poskytuje CSS3 vlastnost opacity, jejíž hodnota se může pohybovat od 0 do 1. Nula odpovídá plné průhlednosti prvku a jedna naopak neprůhlednosti. Moderní prohlížeče s touto vlastností pracují zcela korektně, s výjimkou prohlížeče Internet Explorer, takže pro něj musíte použít speciální vlastnost filtru s hodnotou alpha(Opacity=X) , kde X se může lišit od 0 do 100.