Kako blokirati alert z indeks. Svojstvo pozicioniranja Z-indeksa u CSS-u. d Reprezentacija Z ose

Većina CSS svojstava je lako razumljiva. Često, primjena bilo kojeg od njih na element za označavanje daje trenutne rezultate - samo trebate osvježiti stranicu i možete vidjeti učinak aplikacije. Međutim, postoje neka svojstva koja su složenija i koja će raditi samo pod određenim okolnostima.

Svojstvo z-indeks pripada drugoj grupi, što nesumnjivo izaziva više zabune od bilo koje druge. Ironično, međutim, sa potpunim razumijevanjem šta je z-indeks, vrlo je jednostavan za korištenje i često je efikasan način za prevazilaženje mnogih problema sa rasporedom.

U ovom članku ćemo pogledati šta je z-indeks, koji problemi postoje u njegovom razumijevanju, a također ćemo razmotriti neke primjere njegove upotrebe. Takođe ćemo razmotriti razliku u načinu na koji pretraživači to rade, posebno u prethodnim verzijama Internet Explorer-a i FireFox-a.

Dakle, koja je ovo imovina?

Svojstvo z-index određuje nivo položaja u steku, dubinu html elementa. "Nivo dubine" znači položaj elementa duž Z ose (upravno na X i Y osi ekrana). Što je veća vrijednost z-indeksa, to će element biti viši.

Prirodni raspored elemenata

Na stranici, normalno postavljanje elemenata (pod tim mislim duž Z ose) određuje nekoliko faktora. Ispod je lista ovih faktora, počevši od najnižih elemenata. Ova lista pretpostavlja da nijednom elementu nije eksplicitno dodijeljeno svojstvo z-indeksa.

  1. Pozadina i granice elementa koji definira kontekst steka.
  2. Elementi s negativnim kontekstom steka, u redoslijedu prikaza.
  3. Nepozicionirani (pozicija: statički), kao i bez skupa svojstava float (float: nema) blok elemenata (prikaz: blok), u redoslijedu prikaza.
  4. Nepozicionirani blokovi sa plutajućim svojstvima, u redoslijedu prikaza.
  5. Inline elementi, u redoslijedu prikaza.
  6. Elementi sa postavljenim svojstvom položaja, u redoslijedu prikaza.

Ispravna primjena svojstva z-indeksa može promijeniti prirodnu poziciju u steku.

Naravno, redoslijed elemenata u steku nije očigledan sve dok ne trebate prikazati elemente jedan iznad drugog. Stoga, da biste vidjeli normalan redoslijed elemenata, primjer ispod koristi negativne margine.

Ovi elementi imaju različite boje pozadine i ivica, a posljednja dva su pomaknuta zbog postavljanja negativnog svojstva margine. Na taj način možete vidjeti prirodan raspored elemenata, svaki sljedeći je „iznad“ prethodnog. Ovi elementi nemaju skup svojstava z-indeksa, a njihov redoslijed slaganja je prirodan.

Gdje bi mogli biti problemi?

Pogledajmo najpopularniji problem među programerima početnicima. Stvar je u tome da svojstvo z-index radi samo na elementima koji imaju svojstvo položaja postavljeno na apsolutnu, fiksnu ili relativnu.

Da bismo to demonstrirali, prikažimo ista tri elementa, ali sa svojstvom z-indeksa postavljenim da pokušamo promijeniti redoslijed duž Z ose.

Postavimo z-indeks sivog elementa na 9999, plavog elementa na 500, a braon elementa na 1. Logično je očekivati ​​da se redoslijed promijeni. Ali ne u ovom slučaju, pošto je svojstvo pozicije statičko po defaultu.

Postavimo svojstvo pozicije na relativno i vidimo šta se dešava:

Ali sada imamo očekivani rezultat. Redoslijed elemenata je promijenjen, sivi element je iznad svega, a smeđi je na samom dnu.

Sintaksa

Svojstvo z-index utječe i na blok elemente i na inline elemente. Vrijednost može biti pozitivan ili negativan broj, ili je zadana vrijednost auto . Zadana vrijednost znači da je element na istom nivou kao i njegov roditelj.

Ispod je CSS za treći primjer, gdje je svojstvo z-index ispravno primijenjeno:

#grey_box ( širina: 200px; visina: 200px; granica: čvrsta 1px #ccc; pozadina: #ddd; pozicija: relativna; z-indeks: 9999; ) #blue_box ( širina: 200px; visina: 200px; granica: čvrsta 1px # 4a7497; pozadina: #8daac3; pozicija: relativna; z-indeks: 500; ) #gold_box (širina: 200px; visina: 200px; granica: čvrsta 1px #8b6125; pozadina: #ba945d; pozicija: relativna; z-indeks: 1 ; )

Još jednom, posebno za one koji su novi u CSS-u, svojstvo z-index neće raditi osim ako ne postavite svojstvo pozicije.

Koristi se u javascriptu

Možete utjecati na svojstvo z-index dinamički koristeći javaScript. Sintaksa je slična onoj većine CSS svojstava, koristeći kamel notaciju za zamjenu crtice u CSS svojstvima.

Var myElement = document.getElementById("gold_box"); myElement.style.position = "relativan"; myElement.style.zIndex = "9999";

Neispravna implementacija u IE i FireFox-u

U nekim slučajevima, u IE6, IE7 i FireFox 2, postoji netačna implementacija svojstva z-indeksa.

Odaberite element u IE6

U Internet Explorer-u 6, element select je kontrola prozora, iz tog razloga se uvijek prikazuje na vrhu svih elemenata, zanemarujući normalan redoslijed postavljanja, kao i svojstva pozicije i z-indeksa. Problem je prikazan na slici ispod:

Select element je prvi element u dokumentu, njegovo svojstvo z-indeksa je postavljeno na 1, a njegova pozicija je postavljena na relativnu. Div se prikazuje nakon odabira i njegov z-indeks je "9999". Na osnovu svega ovoga, div bi trebao biti smješten iznad select , kao što se to dešava u drugim pretraživačima:

Odaberite godinu - 2009 2010 2011

Ako ne gledate ovaj članak u IE6, vidjet ćete da je div pozicioniran iznad select .

Ova IE6 greška je veliki problem za padajuće menije kada treba da preklapaju selektovani element. Rješenje bi moglo biti korištenje JavaScripta da privremeno sakrijete birače, a zatim ih ponovo prikažete nakon što meni nestane. Drugo rješenje bi moglo biti korištenje iframe-a.

Pozicionirani roditelji u IE6/IE7

Internet Explorer verzije 6 i 7 ne resetuju ispravno kontekst steka u odnosu na najbliži pozicionirani roditelj. Da bismo demonstrirali ovu grešku, ponovo ćemo prikazati dva diva. Ali ovaj put ćemo prvi umotati u pozicionirani element.

Sivi element ima z-indeks 9999, plavi element ima z-indeks 1, oba elementa su pozicionirana. Stoga, ako se pravilno implementira, sivi element će se pojaviti na vrhu plavog.

Ako otvorite ovu stranicu u IE6 ili IE7, vidjet ćete da se plavi element preklapa sa sivim. Ovo se dešava zato što je sivi element umotan u drugi div čija je pozicija postavljena na relativnu.

Oba pretraživača "resetuju" kontekst steka na relativno pozicioniranim elementima, iako to ne bi trebalo. Sivi element ima veći z-indeks od plavog elementa, tako da bi trebao izgledati viši. Kod drugih pretraživača takvog problema nema.

Negativne vrijednosti u FireFoxu 2

U FireFox-u 2, elementi sa negativnim z-indeksom su ispod konteksta slaganja, umjesto da budu iznad pozadine i granica elementa koji formira kontekst slaganja. Primjer možete vidjeti na slici:


Ispod je html verzija

Kao što vidite, pozadina sivog elementa (koji čini kontekst steka) je ispod plave, a tekst (koji je inline element u sivom elementu) je iznad njega, prateći prirodna pravila rasporeda opisana gore.

Primjeri korištenja

Originalni članak daje mnogo primjera korištenja imovine. Iskreno, previše sam lijen da ovo prevedem, u osnovi je to screenshot, mali komentar i link. Ako ti zaista treba, onda piši, naći ću vremena za to.

Bilo koji pozicionirani elementi na web stranici mogu se naslagati jedan na drugi u određenom redoslijedu, čime se simulira treća dimenzija okomita na ekran. Svaki element može biti ispod ili iznad drugih objekata na web stranici, njihov položaj duž z-ose kontrolira z-indeks. Ovo svojstvo radi samo za elemente čija je vrijednost pozicije apsolutna, fiksna ili relativna.

kratke informacije

Oznake

OpisPrimjer
<тип> Označava tip vrijednosti.<размер>
A && BVrijednosti se moraju ispisati navedenim redoslijedom.<размер> && <цвет>
A | BOznačava da trebate odabrati samo jednu vrijednost od predloženih (A ili B).normalno | small-caps
A || BSvaka vrijednost se može koristiti samostalno ili zajedno s drugima bilo kojim redoslijedom.širina || count
Grupne vrijednosti.[ usev || križ ]
* Ponovite nula ili više puta.[,<время>]*
+ Ponovite jedan ili više puta.<число>+
? Navedeni tip, riječ ili grupa su opcioni.umetnuti?
(A, B)Ponovite najmanje A, ali ne više od B puta.<радиус>{1,4}
# Ponovite jedan ili više puta odvojeno zarezima.<время>#
×

Vrijednosti

Kao vrijednosti se koriste cijeli brojevi (pozitivni, negativni i nula). Što je veća vrijednost, to je veći element u poređenju sa onim elementima koji imaju nižu vrijednost. Ako je vrijednost z-indeksa jednaka, element u prvom planu je onaj koji je dolje opisan u HTML kodu. Prihvatljivo je koristiti negativnu vrijednost.

Osim numeričkih vrijednosti, koristi se i auto - redoslijed elemenata u ovom slučaju se gradi automatski, na osnovu njihove pozicije u HTML kodu i njihove pripadnosti nadređenom, budući da podređeni elementi imaju isti broj kao i njihov roditeljski element.

Primjer

Narudžba kartice

U ovom primjeru, kada zadržite pokazivač iznad karte, ona dolazi do prednje ivice, djelomično preklapajući ostale slike (slika 1).

Rice. 1. Promjena redoslijeda karata

Objektni model

Objekt.style.zIndex

Bilješka

Lista kreirana sa