z indekso ypatybė: išsami apžvalga. Perdangos kontekstai arba kai z indeksas neveikia Css z indeksas veikia tik su fiksuota

Pradžia / Duomenų atkūrimas

z indeksas

CSS z indekso nuosavybė apibrėžia elementų tvarką, kai jie yra išdėstyti vienas su kitu. Tai yra, galite jį naudoti norėdami nurodyti, kuris elementas (sluoksnis) bus viršuje, o kuris (ir kokia tvarka) bus po juo.

Bet tai nėra taip paprasta. Ši savybė yra viena iš nedaugelio CSS, kuri vienu metu atlieka dvi visiškai skirtingas funkcijas (pvz., poziciją):

  1. z indekso savybė naudojama išdėstytiems elementams išdėstyti.
  2. Kiekvienas elementas, kurio z indeksas nėra lygus automatiniam, sukuriamas naujas lygis tvarka, kurios atžvilgiu ji (tvarka) atsiranda visiems jos palikuonims (natūralu, kad palikuonys, kurių z indeksas nėra lygus auto, jau sukuria savo eilės lygį). Štai kodėl, pavyzdžiui, elementas iš vieno užsakymo lygio negali būti „padėtas“ tarp dviejų elementų iš kito.
  3. Šaknies elementas sukuria šakninį eilės lygį, net jei jame nenurodytas z indeksas.

Pažiūrėkime į šį pavyzdį:

DIV3
DIV4

Šiame pavyzdyje bet kokias z indekso vertes galėsite pakeisti tik DIV3 ir DIV4. Tačiau šie veiksmai neveiks:

  1. DIV3 ir DIV4 nebus galima įtraukti į DIV2, nes jie įjungti skirtingų lygių užsakymas. DIV2 yra elemento DIV1 sukurtame lygyje, o DIV3 ir DIV4 yra DIV2 sukurtame lygyje. Kad jie būtų tame pačiame lygyje, turite pašalinti z indeksą iš DIV2 arba nustatyti jį į automatinį .
  2. Nepavyks įtraukti DIV2 į DIV1. Kad tai veiktų, turite nustatyti automatinį režimą jau ties DIV1.
  3. Ir taip toliau...

Skirtinguose vadovėliuose ir žinynuose sąvoka „Užsakymo lygis“ vadinama skirtingai - vietinis pozicinis kontekstas, vietinis krūvos kontekstas ir kt. Oficialioje CSS specifikacijoje tai parašyta kaip „vietinis krovimo kontekstas“. Tačiau, mano nuomone, frazė „užsakymo lygis“ yra arčiau supratimo daugumai rusakalbių žmonių, todėl aš įvedžiau šį apibrėžimą.

Nuosavybės tipas

Paskirtis: padėties nustatymas.

Taikoma: elementams, kurių padėtis yra kitokia nei statinė.

Paveldima: ne.

Vertybės

Ypatybės z indeksas reikšmė yra nurodyti elementų tvarką vienu iš šių būdų.

  • Skaičius- bet koks teigiamas arba neigiamas sveikasis skaičius, nurodantis elementų tvarką tam tikrame eilės lygyje. Didesnę vertę turintis elementas bus dedamas virš elementų, kurių vertė mažesnė. Jei du elementai turi tas pačias reikšmes, žemiau esantis HTML kode bus viršuje. Be to, elementas, turintis skaitinę reikšmę (įskaitant 0), sukuria naują užsakymo lygį savo padėties vaikams.
  • auto- naudojant šią vertę, dabartinio užsakymo lygio elementas turi tą patį z indeksą kaip ir jo protėvis, kuris sukūrė šį lygį. Tačiau pats elementas nesukuria naujo užsakymo lygio savo palikuonims. Jei yra keli elementai su nurodyta verte, tada tas, kuris rodomas žemiau puslapio HTML kode, bus viršuje.
  • paveldėti- paveldi z indekso reikšmę iš pirminio elemento.

Įvedimo procentas: neegzistuoja.

Numatytoji vertė: auto.

Kadangi elemento, kuris sukuria užsakymo lygį, viduje gali būti ne tik išdėstyti elementai, bet ir kai kurie kiti, naršyklės naudoja tam tikras taisykles, kad juos sluoksniuotų tam tikrame lygyje:

  1. Pirmame sluoksnyje yra elemento, kuris sukūrė šį užsakymo lygį, fonas ir rėmelis.
  2. Viršuje, antrajame sluoksnyje, yra palikuonys elementai, turintys neigiamas z indekso reikšmes, o elementas, kurio vertė artimesnė nuliui, yra aukščiau.
  3. Kitas sluoksnis yra palikuonys elementai, kurie nėra įmontuoti (įdėta).
  4. Ketvirtasis sluoksnis susideda iš plūduriuojančių elementų (plūdės) kartu su jų turiniu.
  5. Penktasis sluoksnis yra įmontuoti palikuonys elementai.
  6. Šeštajame sluoksnyje yra elementai su z-index auto arba 0, kur žemiau esantis elementas kode yra didesnis.
  7. Galiausiai elementai su teigiamomis z indekso reikšmėmis yra pačiame viršuje, o elementas su didesne verte yra didesnis.

Sintaksė

z indeksas: auto | numeris | paveldėti

CSS pavyzdys: z indekso naudojimas

seodon.ru - <a href="https://ermake.ru/lt/css-perenos-dlinnyh-slov-kak-dobavit-s-pomoshchyu-svoistv-css-perenos-stroki/">CSS nuosavybė</a> z indeksas

DIV1
DIV2
DIV3

Rezultatas.

CSS versijos

Versija:CSS 1CSS 2CSS 2.1CSS 3
Palaikymas:TaipTaipTaipTaip

Naršyklės

Naršyklė:Internet Explorer Google Chrome„Mozilla Firefox“.Opera
Versija:6.0 ir 7.08.0 ir naujesnė versija2.0 ir naujesnė versija2.0 3.0 ir naujesnė versija9.2 ir aukštesnė versija3.1 ir naujesnė versija
Palaikymas:Iš daliesTaipTaipIš daliesTaipTaipTaip

Internet Explorer 6.0 ir 7.0 nesupranta paveldėjimo reikšmės. Taip pat šiose naršyklėse naujus užsakymo lygius sukuria visi išdėstyti elementai, o ne tik tie, kurie turi skaitines z indekso reikšmes.

IE 6.0 visada nustato elemento padėtį , V Interneto naršyklė„Explorer 6“ visada pasirodo virš kitų elementų, neatsižvelgiant į z indekso reikšmę.

Internet Explorer versijos iki 7.0 imtinai nepalaiko paveldėjimo reikšmės ir interpretuoja automatinį kaip 0.

„Firefox“ naršyklės versijose iki 2.0 imtinai, neigiama z indekso reikšmė pateikia elementą po tinklalapio fonu ir jo turiniu.

z indekso problema yra ta, kad daugelis žmonių tiesiog nesupranta, kaip jis veikia.
Viskas, kas aprašyta toliau, yra W3C specifikacijoje. Deja, ne visi ją skaito.

Problemos aprašymas:

Taigi, tarkime, kad turime HTML kodą, susidedantį iš 3 elementų.
Kiekvienas iš jų savyje turi vieną. Ir kiekvienas, savo ruožtu, turi savo foną: atitinkamai raudoną, žalią ir mėlyną. Be to, kiekvienas iš jų yra absoliučiai viršutiniame kairiajame dokumento krašte taip, kad šiek tiek perdengtų šalia esantį. Pirmojo z indeksas lygus 1, kitų dviejų z indeksas nenustatytas.

Žemiau yra HTML kodas su pagrindiniu CSS dizainu.

Raudona
Žalia
Mėlyna

.red, .green, .blue ( padėtis: absoliuti; ) .red ( fonas: raudonas; z indeksas: 1; ) .green (fonas: žalias; ) .mėlynas (fonas: mėlynas; )
Pavyzdys apie jsfiddle

Užduotis:įsitikinkite, kad po mėlynos ir žalios yra raudona, nepažeisdami šių taisyklių:

  • Negalite pakeisti HTML žymėjimo
  • Negalite pakeisti / pridėti z indekso prie elementų
  • Negalite pakeisti / pridėti elementų padėties

Sprendimas:

Sprendimas yra pridėti šiek tiek mažiau nei vieną neskaidrumą prie pirmojo (raudonos pirminės).
Štai css tai iliustruojantis:
div:first-child ( neskaidrumas: 0,99; )

Hmm, kažkas čia ne taip. Ką su tuo turi skaidrumas? Kaip tai gali paveikti persidengiančių elementų tvarką? Ar manote taip pat? Sveiki atvykę į klubą!
Tikiuosi, kad antroje straipsnio dalyje viskas stos į savo vietas.

Perdengimo elementų tvarka:

Z-indeksas atrodo labai paprastas: kuo didesnė reikšmė, tuo elementas bus arčiau mūsų, t.y. elementas, kurio z indeksas yra 5, persidengs su elementu, kurio z indeksas yra 2, tiesa? Tikrai ne.
Tai yra z indekso problema. Viskas atrodo taip akivaizdu, kad dauguma kūrėjų neskiria pakankamai laiko šiai problemai tirti.

Bet koks elementas HTML dokumentas gali būti tiek priekiniame plane, tiek fone. Visi tai žino. Taisyklės, apibrėžiančios šią tvarką, yra aiškiai aprašytos specifikacijoje, tačiau, kaip minėjau aukščiau, ne visi jas iki galo supranta.

Jei z indeksas ir padėties nustatymo ypatybės nenustatytos aiškiai, viskas paprasta: krovimo tvarka yra lygi elementų tvarkai HTML. (Tiesą sakant, tai šiek tiek sudėtingesnė, bet jei nenaudosite neigiamų užpildymo verčių, kad perdengtumėte eilutinius elementus, nepateksite į kraštutinius atvejus)

Jei aiškiai nurodote elementų (ir jų antrinių) pozicionavimą, tokie elementai sutaps su elementais be aiškios padėties nustatymo savybės. (Kai sakau „aiškiai nurodykite padėties nustatymą“, turiu omenyje bet kokią vertę, išskyrus statinę, pavyzdžiui: absoliučią arba santykinę).

Ir galiausiai atvejis, kai pateikiamas z indeksas. Pirmiausia natūralu manyti, kad elementai su dideliu z indeksu bus virš elementų su mažesniu z indeksu, o bet kuris elementas su z indekso rinkiniu bus virš elemento be z indekso rinkinio, bet tai taip nėra. Pirma, į z indeksą atsižvelgiama tik aiškiai išdėstytuose elementuose. Jei bandysite nustatyti z indeksą nepadėtame elemente, nieko neatsitiks. Antra, z indekso reikšmės gali sukurti perdangos kontekstus. Hmm, viskas tapo daug sudėtingiau, ar ne?

Perdangos kontekstas

Elementai su bendrais tėvais, kurie kartu persikelia į pirmą planą arba foną, vadinami perdangos kontekstu. Norint suprasti z indeksą ir elementų išdėstymo tvarką, labai svarbu suprasti krovimo kontekstą.

Kiekvienas perdangos kontekstas turi savo pagrindinį elementą HTML struktūroje. Šiuo metu elemente formuojamas naujas kontekstas, visi antriniai elementai taip pat patenka į šį kontekstą ir užima vietą perdangos eilėje. Jei elementas yra pačioje vieno perdangos konteksto apačioje, jokiu būdu jis negali būti rodomas virš kito elemento gretimame perdangos kontekste, esančiame aukščiau hierarchijos, net jei z indeksas nustatytas į milijoną.

Naujas kontekstas gali susidaryti šiais atvejais:

  • Jei elementas yra pagrindinis dokumento elementas (elementas)
    Jei elementas nėra statiškai išdėstytas ir jo z indekso reikšmė nėra automatinė
    Jei elemento neskaidrumas yra mažesnis nei 1

z indekso problema yra ta, kad daugelis žmonių tiesiog nesupranta, kaip jis veikia.
Viskas, kas aprašyta toliau, yra W3C specifikacijoje. Deja, ne visi ją skaito.

Problemos aprašymas:

Taigi, tarkime, kad turime HTML kodą, susidedantį iš 3 elementų.
Kiekvienas iš jų savyje turi vieną. Ir kiekvienas, savo ruožtu, turi savo foną: atitinkamai raudoną, žalią ir mėlyną. Be to, kiekvienas iš jų yra absoliučiai viršutiniame kairiajame dokumento krašte taip, kad šiek tiek perdengtų šalia esantį. Pirmojo z indeksas lygus 1, kitų dviejų z indeksas nenustatytas.

Žemiau yra HTML kodas su pagrindiniu CSS dizainu.

Raudona
Žalia
Mėlyna

.red, .green, .blue ( padėtis: absoliuti; ) .red ( fonas: raudonas; z indeksas: 1; ) .green (fonas: žalias; ) .mėlynas (fonas: mėlynas; )
Pavyzdys apie jsfiddle

Užduotis:įsitikinkite, kad po mėlynos ir žalios yra raudona, nepažeisdami šių taisyklių:

  • Negalite pakeisti HTML žymėjimo
  • Negalite pakeisti / pridėti z indekso prie elementų
  • Negalite pakeisti / pridėti elementų padėties

Sprendimas:

Sprendimas yra pridėti šiek tiek mažiau nei vieną neskaidrumą prie pirmojo (raudonos pirminės).
Štai css tai iliustruojantis:
div:first-child ( neskaidrumas: 0,99; )

Hmm, kažkas čia ne taip. Ką su tuo turi skaidrumas? Kaip tai gali paveikti persidengiančių elementų tvarką? Ar manote taip pat? Sveiki atvykę į klubą!
Tikiuosi, kad antroje straipsnio dalyje viskas stos į savo vietas.

Perdengimo elementų tvarka:

Z-indeksas atrodo labai paprastas: kuo didesnė reikšmė, tuo elementas bus arčiau mūsų, t.y. elementas, kurio z indeksas yra 5, persidengs su elementu, kurio z indeksas yra 2, tiesa? Tikrai ne.
Tai yra z indekso problema. Viskas atrodo taip akivaizdu, kad dauguma kūrėjų neskiria pakankamai laiko šiai problemai tirti.

Bet kuris HTML dokumento elementas gali būti pirmame plane arba fone. Visi tai žino. Taisyklės, apibrėžiančios šią tvarką, yra aiškiai aprašytos specifikacijoje, tačiau, kaip minėjau aukščiau, ne visi jas iki galo supranta.

Jei z indeksas ir padėties nustatymo ypatybės nenustatytos aiškiai, viskas paprasta: krovimo tvarka yra lygi elementų tvarkai HTML. (Tiesą sakant, tai šiek tiek sudėtingesnė, bet jei nenaudosite neigiamų užpildymo verčių, kad perdengtumėte eilutinius elementus, nepateksite į kraštutinius atvejus)

Jei aiškiai nurodote elementų (ir jų antrinių) pozicionavimą, tokie elementai sutaps su elementais be aiškios padėties nustatymo savybės. (Kai sakau „aiškiai nurodykite padėties nustatymą“, turiu omenyje bet kokią vertę, išskyrus statinę, pavyzdžiui: absoliučią arba santykinę).

Ir galiausiai atvejis, kai pateikiamas z indeksas. Pirmiausia natūralu manyti, kad elementai su dideliu z indeksu bus virš elementų su mažesniu z indeksu, o bet kuris elementas su z indekso rinkiniu bus virš elemento be z indekso rinkinio, bet tai taip nėra. Pirma, į z indeksą atsižvelgiama tik aiškiai išdėstytuose elementuose. Jei bandysite nustatyti z indeksą nepadėtame elemente, nieko neatsitiks. Antra, z indekso reikšmės gali sukurti perdangos kontekstus. Hmm, viskas tapo daug sudėtingiau, ar ne?

Perdangos kontekstas

Elementai su bendrais tėvais, kurie kartu persikelia į pirmą planą arba foną, vadinami perdangos kontekstu. Norint suprasti z indeksą ir elementų išdėstymo tvarką, labai svarbu suprasti krovimo kontekstą.

Kiekvienas perdangos kontekstas turi savo pagrindinį elementą HTML struktūroje. Šiuo metu elemente formuojamas naujas kontekstas, visi antriniai elementai taip pat patenka į šį kontekstą ir užima vietą perdangos eilėje. Jei elementas yra pačioje vieno perdangos konteksto apačioje, jokiu būdu jis negali būti rodomas virš kito elemento gretimame perdangos kontekste, esančiame aukščiau hierarchijos, net jei z indeksas nustatytas į milijoną.

Naujas kontekstas gali susidaryti šiais atvejais:

  • Jei elementas yra pagrindinis dokumento elementas (elementas)
    Jei elementas nėra statiškai išdėstytas ir jo z indekso reikšmė nėra automatinė
    Jei elemento neskaidrumas yra mažesnis nei 1

© 2024 ermake.ru - Apie kompiuterių taisymą - Informacinis portalas