Element je proziran. Svojstvo neprozirnosti CSS-a: kontrolira prozirnost. Kako učiniti element prozirnim i ukloniti prozirnost u CSS-u

orem Ipsum jednostavno je lažni tekst tiskarske i slovne industrije. Lorem Ipsum je standardni lažni tekst u industriji još od 1500-ih, kada je nepoznati tiskar uzeo galiju slova i pomešao je da bi napravio knjigu uzoraka slova. Preživio je ne samo pet stoljeća, već i skok u elektroničko slaganje slova Populariziran je 1960-ih izdavanjem listova Letraset koji sadrže odlomke Lorem Ipsuma, au novije vrijeme sa softverom za stolno izdavaštvo kao što je Aldus PageMaker uključujući verzije Lorem Ipsuma.
Davno je utvrđena činjenica da će čitatelju odvući pažnju čitljiv sadržaj stranice kada gleda njezin izgled. Smisao korištenja Lorem Ipsuma je da ima više-manje normalnu raspodjelu slova, za razliku od upotrebe "Sadržaj ovdje, sadržaj ovdje", što čini da izgleda kao čitljiv engleski. Mnogi paketi za stolno izdavaštvo i uređivači web stranica sada koriste Lorem Ipsum kao svoj zadani tekst modela, a pretraživanje pojma "lorem ipsum" otkrit će mnoge web stranice koje su još u povojima. Tijekom godina su se razvijale razne verzije, ponekad slučajno, ponekad namjerno (ubačeni humor i slično).

Dakle, danas ćemo razgovarati o transparentnost u html-u stranice. Vjerojatno ste naišli na transparentne skočne blokove, bilo da se radi o galeriji fotografija ili obrascima za prijavu na nekoj popularnoj web stranici. Postoje mnoge upotrebe transparentnosti u HTML-u. Dakle, kako se pravi i gdje se može koristiti?

Pa, prije svega, shvatimo da naš dokument nema samo jednu ravninu monitora - općenito je trodimenzionalan, to sam spomenuo u članku "Z-indeks". U skladu s tim, čak i potpuno proziran sloj, da je na vrhu hrpe zaslona, ​​blokirao bi pristup drugim elementima. Ovo je jedna od glavnih namjena prozirnih blokova. Iako se obično koristi efekt sjenčanja, potpuno proziran sloj će raditi potpuno isto. Tako, na primjer, rade mnoge popularne galerije fotografija; organiziran je osjenčani sloj u kojem se prikazuju fotografije i kontrole za njih. Ostatak stranice "prekriven" je (polu)prozirnim slojem koji blokira pristup svim ostalim elementima na stranici. Oni. Nećete moći napustiti stranicu klikom na bilo koji link na njoj - sav tekst je prekriven pozadinom. Za povratak na tijelo stranice obično pružaju kontrole za zatvaranje galerije, obrazac za prijavu itd. Kontrolirajte prikazivanje/skrivanje prozirnih blokova pomoću javascripta. Nažalost, nema alternative za to. Bez korištenja, korisnik ga uopće neće vidjeti prozirni blok, ili je neće moći zatvoriti bez napuštanja trenutne stranice. Napominjem da se za to koriste svojstva vidljivosti ili prikaza.

Dakle, kako je transparentnost zapravo organizirana u html-u? Postavljanje transparentnosti elementa općenito nije uključeno u CSS specifikaciju, tako da morate koristiti nekoliko uputa odjednom da biste ga izradili. Neki će preglednici (tj.) raditi s jednom opcijom, drugi s drugom. Tj. koristi ugrađenu funkciju filtera, drugi preglednici koriste svojstvo "opacity", koje je postavljeno u rasponu od 0 (potpuno proziran objekt) do 1 (potpuno neproziran). Na primjer, u slučaju prozirnosti od 30%, trebali biste napisati " neprozirnost:0,30; filtar:alfa(neprozirnost=30);". Svojstva, kao što se može vidjeti iz primjera, slična su - samo u prvom slučaju koristi se broj od 0 do 1, u drugom se koristi zapis postotka. Primjer takvog bloka:

<div stil = "pozicija: apsolutna; gore: 0; lijevo: 0; boja pozadine: rgb (18, 114, 214); širina: 100%; id = "VideoFrame" >

Primjer koristi blok prikaza videozapisa koji se aktivira kada kliknete sličicu videozapisa. Visina bloka nije određena jer može varirati ovisno o veličini zaslona i sadržaju stranice. Stoga se dinamički izračunava prilikom otvaranja videa. Primjer korištenja ove tehnike može se vidjeti na glavnoj stranici web stranice ruscircus.ru na kojoj sam svojedobno radio.

To je, zapravo, sva tajna transparentnosti u html-u. Koristimo z-indeks i neprozirnost za postizanje transparentnog učinka. I za to možete pronaći mnoge primjene - ovdje je sve ograničeno samo vašom maštom.

08.02.2013 Odgovorit ću na pitanja postavljena u komentarima, naime o tome kako napraviti neprozirni na prozirnom bloku. Ovdje je sve jednostavno, nisam uzalud u materijalu naveo vezu na materijal o z-indeksu, morate stvoriti još jedan blok, s višim z-indeksom od transparentnog. Sada, za nekoliko minuta, skicirao sam primjer. Blokovi:

<div stil = "pozicija:apsolutna; gore: 0; lijevo: 0; boja pozadine:rgb(18, 114, 214); širina:100%; visina:100%; neprozirnost:0,30; filtar:alfa(neprozirnost=30); vidljivost:skriveno; z-indeks:1;" id = "VideoFrame" > <div id = "VideoFrame2" style = "položaj: apsolutni; vrh: 25%; lijevo: 25%; boja pozadine: bijela; širina: 50%; visina: 50%; neprozirnost:0,99; filtar:alfa(neprozirnost=99); vidljivost:skriveno; z-indeks:2;" onclick = "javascript:HideForm();" > Ovdje pišemo tekst</div>

I javascript funkcije

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

Prva funkcija prikazuje prozirni blok (zajedno s neprozirnim blokom teksta) - može se vezati za gumb. link, itd.. Druga funkcija koju imam vezana je za klik mišem na blok s tekstom - skriva transparentni blok.

Nadam se da sam razjasnio kako ovo funkcionira. Pa, ako ne, postavljajte pitanja.

CSS svojstvo 3 neprozirnost omogućuje vam da jedan ili drugi element stranice učinite transparentnim.

Stupanj prozirnosti elementa određen je vrijednošću iz 0 prije 1 Gdje 0 – potpuno transparentan 1 – uopće neproziran.. Tako npr. značenje 0.5 Svojstva neprozirnost primijenjen na sliku značit će da bi ta slika trebala biti prozirna.





Transparentnost










Transparentnost u IE

Internet Explorer ne podržava svojstva neprozirnost do devete verzije, međutim, ima vlastiti filtar s kojim možete postaviti stupanj transparentnosti:

filtar: alfa (neprozirnost=50)

Značenje neprozirnost za filtar preglednika Internet Explorer može varirati od 0 - potpuno transparentan 100 - neproziran





Transparentnost u IE



Blokovi ovog izbornika bit će prozirni i kada lebdite mišem u IE-u!!


Dom
Karta stranice
Kupi slona
Prodaj slona
Iznajmiti slona

Prefiksi.

U principu, ovo bi mogao biti kraj poglavlja o transparentnosti, no želio bih vam reći i nešto o tzv. prefiksi dobavljača.. ovi drugovi nemaju poseban odnos prema ovom poglavlju, međutim, kako budete napredovali u učenju CSS3, pojavljivat će se sve češće i o njima morate negdje razgovarati - pa ću vam reći ovdje.

Dakle, prefiksi dobavljača posebni su prefiksi CSS svojstava koje koriste preglednici za eksperimentalna svojstva koja nisu službeno uključena u CSS specifikaciju.

Sjećamo se da je specifikacija CSS 3 još uvijek u razvoju i formalno svojstva opisana u ovom vodiču ne postoje u prirodi, ali ih preglednici već aktivno koriste na vlastitu odgovornost i rizik.

Zašto na vlastitu odgovornost? Da, jer postoji mogućnost da će se svojstva opisana u njoj razlikovati po učinku kada CSS 3 specifikacija bude službeno odobrena od istoimenih svojstava koja već koriste preglednici. Pa, hajde da poludimo i pustimo programere CSS 3 specifikacije da odrede svojstvo neprozirnost ne kao stupanj prozirnosti bloka, nego npr. kao njegovo sjenčanje ili titranje (naravno da pišem gluposti), što će onda prikazati milijuni već instaliranih preglednika za koje neprozirnost Je li to transparentnost?

Ili recimo da su programeri preglednika smislili svoje svojstvo - inovaciju koju nitko drugi nigdje nema, ali dokument s takvim svojstvom ne prolazi provjeru valjanosti jer takvog svojstva nema u specifikaciji.

Zbog ovih i drugih razloga, preglednici postavljaju prefiks svojstvima koja nisu dio službene specifikacije. Svaki preglednik ima svoj prefiks koji počinje sa znakom “-”, ovaj znak na početku svojstva, kao i ovaj znak “_” prema specifikaciji CSS 2.1 znači da je svojstvo rezervirano za CSS ekstenzije određenih preglednici.

Ovo su najpopularniji preglednici i njihovi prefiksi:

preglednikPrefiks
Opera-o-
Firefox, SeaMonkey, Camino-moz-
Internet Explorer 8 i noviji-ms-
Safari do verzije 3, Konqueror-khtml-
Safari 3 i noviji, Google Chrome-webkit-

Vrlo je jednostavno koristiti prefikse; samo uzmite bilo koje CSS svojstvo i zamijenite ga željenim prefiksom, na primjer svojstvu neprozirnost zamjena -moz- ispada: -moz-neprozirnost

Iako je zapravo moj izraz “ koristiti prefikse"pogrešno! zapravo, nigdje ništa nije zamijenjeno, jednostavno postoji svojstvo neprozirnost, je tamo -moz-neprozirnost a to su dva različita svojstva koja ne moraju nužno obavljati istu funkciju!! - ovo treba razumjeti..

Također biste trebali razumjeti da određeni preglednici, do određenih verzija, mogu podržavati samo CSS svojstva s vlastitim prefiksima (opet se netočno izražavam, ispravno je reći vaša vlastita svojstva - CSS proširenja preglednika), i u početku se mogu osloniti na specifikacije, čak i ako su u razvoju. – U ovom udžbeniku razmatrat ćemo svaki konkretan slučaj zasebno.

Što se tiče ovog poglavlja o transparentnosti, treba napomenuti da Firefox 3.5 i njegove ranije verzije koriste svoje vlastito svojstvo -moz-neprozirnost, a preglednik Safari do verzije 1.1 koristi njegovo svojstvo -khtml-neprozirnost .

Dakle, kako bi naš primjer bio potpuno kompatibilan s više preglednika, moramo dodati još nekoliko redaka kodu:





Prefiksi i transparentnost





Kao što vidite, prefiksi značajno rastežu kod i njihova upotreba nije uvijek opravdana ako su verzije preglednika koji žele raditi s određenim svojstvima samo koristeći svoje prefikse prilično stare, kao što je slučaj sa svojstvom neprozirnost, onda ih ne morate naznačiti.. – iako je to naravno loš savjet..

E, sad nekoliko korisnih savjeta...

Uvijek koristite prefikse (osim, naravno, ako određeni preglednik ne može bez njih) u slučajevima kada korišteno svojstvo može uvelike utjecati na izvedbu, čitljivost i upotrebljivost stranice. Jedna je stvar kada male stvari u dizajnu stranice ne rade, a sasvim druga stvar kada, na primjer, izbornik stranice ne radi ili je nemoguće pročitati tekst na stranici jer preglednik ne podržava neko svojstvo a umjesto toga koristi sličan vlastiti.

Transparentnost u CSS-u prilično je trendi tehnika u posljednje vrijeme, što uzrokuje poteškoće u implementaciji na više preglednika. Još uvijek ne postoji univerzalna metoda koja bi omogućila implementaciju transparentnosti za sve preglednike. Međutim, nedavno se situacija značajno popravila.

Ovaj članak pruža detaljan pregled postojećih pristupa, kao i primjere koda i objašnjenja koji će vam pomoći da postignete isti rezultat u svim preglednicima uz minimalan napor.

Jedna stvar koju vrijedi spomenuti je da iako transparentnost postoji već nekoliko godina, nikada nije bila dio CSS standarda. Ovo je nestandardno svojstvo koje bi trebalo biti dio CSS3 specifikacije.

Stari pristup

U starijim verzijama Firefoxa i Safarija morate primijeniti svojstvo na sljedeći način:

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

Svojstvo -khtml-opacity korišteno je u starijim verzijama webkit preglednika. Ovo svojstvo je zastarjelo i više nije potrebno osim ako niste sigurni da značajan dio prometa vaše stranice dolazi od posjetitelja koji koriste Safari 1.x, što je naravno malo vjerojatno.

Sljedeći redak koristi svojstvo -moz-opacity, koje je radilo na vrlo ranim verzijama Mozilla motora. Firefox ga je prestao podržavati u verziji 0.9.

CSS transparentnost u Firefoxu, Safariju, Chromeu i Operi

Za većinu modernih preglednika dovoljno je koristiti sljedeće svojstvo:

#myElement ( neprozirnost: .7; )

U gornjem primjeru, element je postavljen na 70% neprozirnosti (30% prozirnosti). To jest, ako vrijednost postavimo na jedan, element će biti neproziran i, prema tome, postavljanje ove vrijednosti na nulu učinit će ga nevidljivim.

Svojstvo neprozirnosti obrađuje 2 decimalne znamenke. Odnosno, vrijednost ".01" će se razlikovati od vrijednosti ".02", iako to nije vidljivo.

CSS transparentnost za Internet Explorer

Kao i obično, Internet Explorer nije prijateljski raspoložen prema drugim preglednicima. Osim toga, sada imamo tri verzije ovog preglednika u prilično širokoj upotrebi, od kojih je postavka transparentnosti u svakoj drugačija i ponekad zahtijeva dodatne napore da se dobije pozitivan rezultat.

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

Ovaj primjer koristi svojstvo filtera, koje radi u verzijama 6-8, ali za verzije 6 i 7 postoji jedno ograničenje: svojstvo elementa hasLayout mora biti postavljeno na true. Ovo svojstvo postoji samo u IE, a više o njemu možete pročitati, na primjer, na Habréu.

Drugi način postavljanja transparentnosti pomoću CSS-a u IE8 je korištenje sljedećeg pristupa (obratite pozornost na komentare):

#myElement ( filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40); /* radi u IE6, IE7 i IE8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; / * samo za IE8 */ )

Prvi redak će raditi u svim trenutno korištenim verzijama, drugi - samo u IE8. Imajte na umu da drugi redak koristi prefiks -ms-, a vrijednost je u navodnicima.

Postavljanje i promjena CSS transparentnosti pomoću JavaScripta ili jQueryja

Za postavljanje transparentnosti možete koristiti sljedeći kod:

Document.getElementById("myElement").style.opacity = ".4"; // za većinu preglednika document.getElementById("myElement").style.filter = "alpha(opacity=40)"; // za IE

Naravno, u ovom slučaju puno je lakše koristiti jQuery, osim toga, radit će u svim preglednicima:

$("#myElement").css(( neprozirnost: .4 )); // radi u svim preglednicima

Možete animirati ovo svojstvo:

$("#myElement").animate(( opacity: .4 ), 1000, function() ( // Animacija je dovršena; ovaj kod radi u svim preglednicima. ));

RGBA funkcija

CSS3 planira podržati alfa kanale pomoću funkcije rgba. Ova značajka radi u Firefoxu 3+, Operi 10.1+, Chromeu 2+, Safariju 3.1+. Koristi se ovako:

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

U ovom slučaju posljednji parametar označava razinu neprozirnosti.

HSLA funkcija

Slično prethodnoj funkciji, CSS3 također omogućuje postavljanje poluprozirne boje pomoću funkcije HSLA, čiji su parametri Hue, Saturation, Lightness i Alpha channel.

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

Važna točka pri korištenju funkcija rgba i hsla jest da se postavka transparentnosti ne primjenjuje na podređene elemente, dok se upotreba svojstva neprozirnosti nasljeđuje.

Za kontrolu prozirnosti elemenata stranice upotrijebite svojstvo neprozirnosti CSS-a. Prema specifikaciji, odnosi se na bilo koju vrstu čvora i podržan je u svim modernim preglednicima. Uz njegovu pomoć možete stvoriti zanimljiv dizajn ili implementirati prikladnu interaktivnu interakciju s korisnikom.

Moguće vrijednosti

Sintaksa za svojstvo neprozirnosti u css-u izgleda ovako:

Selektor (neprozirnost: 1; ) selektor (neprozirnost: 0; ) selektor (neprozirnost: 0,4; )

Unos prihvaća numeričke vrijednosti u rasponu od 0 do 1. Parametar može predstavljati razlomke od jedan, dok se točka koristi kao razdjelnik za cijeli i razlomački dio u CSS-u.

Element s nultom transparentnošću postaje nevidljiv, ali i dalje nastavlja zauzimati svoje mjesto na stranici i zadržava mogućnost interakcije s korisnikom.

Ako je vrijednost svojstva različita od nule, tada će se stvarna prozirnost izračunati kao postotak neke gornje granice. U normalnoj situaciji neprozirnost: 1 određuje potpunu neprozirnost elementa.

Transparentnost dječjih čvorova

Međutim, ako element ima roditelja čija transparentnost nije jedan, izračun se mijenja. Potomak ne može biti "manje transparentan" od bilo kojeg od svojih predaka. Vrijednost CSS svojstva neprozirnosti nadređenog bloka postaje gornja granica neprozirnosti podređenog čvora.

Roditelj (neprozirnost: 0,7; ) dijete (neprozirnost: 1; )

U ovoj će situaciji podređeni element biti 30% proziran, iako je vrijednost neprozirnosti jedan.

Primjeri korištenja

Primjer 1: Translucencija. Potrebno je da glavna pozadina bloka bude vidljiva ispod ciljanog elementa.

Cilj (pozadina: crna; neprozirnost: 0,5;)

Ne samo da pozadina ciljanog bloka postaje prozirna, već i tekst.

Primjer 2: Dinamička kontrola transparentnosti. Vrijednost svojstva CSS neprozirnosti ciljnog bloka mijenja se kada prijeđete pokazivačem iznad njega.

Cilj ( neprozirnost: 0,2; ) .target: hover ( neprozirnost: 1; )

Dinamička transparentnost

Posljednji primjer pokazuje da transparentni elementi nastavljaju reagirati na događaje stranice kao što je lebdenje. To vam omogućuje korištenje javascripta za kontrolu svojstva neprozirnosti CSS-a, kao i korištenje mehanizama prijelaza i animacije za glatku promjenu načina prikaza.

Da biste pristupili transparentnosti iz skripte, trebate pristupiti objektu stila određenog elementa.

// dobivanje trenutne vrijednosti prozirnosti var opacity = element.style.opacity; // postavljanje nove vrijednosti element.style.opacity = 0.4;

Glatko nestajanje bloka može se postići pomoću CSS svojstva prijelaza:

Element ( neprozirnost: 0,1; prijelaz: neprozirnost 1000 ms; ) element: hover ( neprozirnost: 0,8; prijelaz: neprozirnost 2000 ms; )

Sada će čvor elementa, kada lebdi mišem, promijeniti prozirnost s 10 na 80% unutar jedne sekunde, a kada kursor ode, zatamnit će se na svoju izvornu vrijednost unutar dvije sekunde.

Svojstvo neprozirnosti CSS-a u kombinaciji s mehanizmom prijelaza omogućuje stvaranje prekrasnih efekata.

Alfa kanal umjesto neprozirnosti

Glavne suptilnosti mehanizma neprozirnosti u CSS-u:

  • njegov se učinak proteže ne samo na pozadinu bloka, već i na njegov tekstualni sadržaj, koji je poželjno ostaviti jasnim;
  • podređeni elementi ne mogu biti manje transparentni od svojih roditelja.

Ako ovi efekti kompliciraju život dizajneru izgleda, umjesto neprozirnosti trebali biste koristiti jednostavnu prozirnu pozadinu, definirajući njezinu vrijednost u RGBA ili HSLA formatu.

Vlad Merzhevich

Prozirni učinak elementa jasno je vidljiv na pozadinskoj slici i postao je raširen u različitim operativnim sustavima jer izgleda elegantno i lijepo. U web dizajnu također se koristi translucencija i postiže se svojstvom neprozirnosti ili RGBA formatom boje koji je postavljen za pozadinu.

Gradijent blok

Napravite blok prikazan na sl. 1. Blok sadrži proziran gradijentni okvir s gradijentnom pozadinom ispod naslova i malim pokazivačem. Pozadina na stranici je samo radi jasnoće efekta prozirnosti; možete označiti bilo koju svoju sliku. Minimalna visina bloka je 100px.

Kako sloj učiniti poluprozirnim?

Da biste promijenili stupanj prozirnosti elementa, upotrijebite svojstvo stila neprozirnosti s vrijednošću od 0 do 1, gdje 0 odgovara potpunoj prozirnosti, a 1, naprotiv, neprozirnosti objekta. Ovo svojstvo ne radi u Internet Exploreru, pa morate koristiti filter posebno za njega, svojstvo koje nije dio CSS specifikacije. Primjer 1 pokazuje kako postaviti transparentnost sloja za sve preglednike.

Prozirna pozadina

Vlad Merzhevich

Djelomična transparentnost, kada se pravilno koristi, izgleda vrlo impresivno u dizajnu web stranice. Glavna stvar je da se ispod prozirnih blokova ne nalazi monokromatski dizajn, već slika; u ovom slučaju transparentnost postaje vidljiva. Ovaj efekt se postiže na mnogo načina, a ako se sjećate svih, uključujući staromodne metode, to je korištenje PNG slike kao pozadine, stvaranje kockaste slike i svojstvo neprozirnosti. Ali čim se pojavi potreba da se napravi prozirna pozadina u bloku, ove metode imaju neugodnu lošu stranu. Napravit ću kratku recenziju kako bi bilo jasno o čemu govorimo, kao i za one čitatelje koji nisu upoznati s netradicionalnim opcijama za stvaranje prozirnog efekta.

Kako postaviti tablicu da bude prozirna, a neke ćelije nisu?

Za promjenu prozirnosti elementa, CSS3 daje svojstvo neprozirnosti, čija vrijednost može varirati od 0 do 1. Nula odgovara potpunoj prozirnosti elementa, a jedan, naprotiv, neprozirnosti. Moderni preglednici sasvim ispravno rade s ovim svojstvom, s izuzetkom preglednika Internet Explorer, pa za njega morate koristiti posebno svojstvo filtera s vrijednošću alpha(Opacity=X) , gdje X može varirati od 0 do 100.