Koj puas tau teeb tsa z-index: 99999 ntawm ib lub caij hauv koj CSS, thiab nws tsis tawm los ntawm lwm cov ntsiab lus? Tus nqi loj yuav tsum tau yooj yim tso lub ntsiab lus pom nyob rau sab saum toj ntawm txhua yam, piv txwv li txhua yam sib txawv tau teeb tsa ntawm tus nqi qis lossis tsis teeb tag nrho. Ib lub vev xaib feem ntau yog sawv cev hauv qhov chaw ob sab; Txawm li cas los xij, los ntawm kev siv cov khoom tshwj xeeb CSS, ib qho kev xav z-axis dav hlau tau qhia los qhia qhov tob. Lub dav hlau no yog perpendicular rau qhov screen, thiab los ntawm nws, tus neeg siv perceives qhov kev txiav txim ntawm lub ntsiab, ib tug nyob rau sab saum toj ntawm lwm yam. Lub tswv yim tom qab lub tswv yim z-axis, tus neeg siv qhov kev nkag siab ntawm cov khoom sib dhos, yog tias CSS cov khoom uas tsim nws ua ke los ua qhov peb hu ua cov ntsiab lus stacking. Peb tab tom tham txog yuav ua li cas cov ntsiab lus "stacked" ntawm nplooj ntawv web, dab tsi tswj cov txheej txheem stacking, thiab cov tswv yim zoo rau "unstack" cov ntsiab lus thaum xav tau. Hais txog Stacking Contexts Xav txog koj lub vev xaib raws li lub rooj. Thaum koj ntxiv cov ntsiab lus HTML, koj tab tom tso daim ntawv, ib qho tom qab, ntawm lub rooj. Daim ntawv kawg ntawm daim ntawv tso yog sib npaug rau cov ntsiab lus HTML uas nyuam qhuav ntxiv, thiab nws zaum saum tag nrho lwm cov ntawv tso ua ntej nws. Qhov no yog cov ntaub ntawv ib txwm ntws, txawm rau cov ntsiab lus zes. Lub rooj nws tus kheej sawv cev rau lub hauv paus stacking ntsiab lus, tsim los ntawm lub caij, uas muaj tag nrho lwm cov folders. Tam sim no, cov khoom tshwj xeeb CSS tuaj rau hauv kev ua si. Cov khoom zoo li txoj hauj lwm (nrog z-index), opacity, transform, thiab muaj) ua zoo li ib daim ntawv tais ceev tseg. Cov ntawv tais ceev tseg no siv lub caij thiab tag nrho nws cov menyuam yaus, rho tawm lawv los ntawm pawg tseem ceeb, thiab muab lawv tso rau hauv ib pawg cais, tsim qhov peb hu ua cov ntsiab lus stacking. Rau qhov chaw nyob, qhov no tshwm sim thaum peb tshaj tawm tus nqi z-index uas tsis yog nws pib. Rau cov khoom zoo li opacity, hloov pauv, thiab lim, cov ntsiab lus stacking yog tsim tau thaum muaj qhov tshwj xeeb raug siv.

Sim nkag siab qhov no: Thaum ib daim ntawv (piv txwv li, cov khoom me nyuam) nyob rau hauv ib daim ntawv tais ceev tseg (piv txwv li, niam txiv cov ntsiab lus stacking), nws yeej tsis tuaj yeem tawm ntawm cov ntawv tais ceev tseg lossis muab tso rau ntawm cov ntawv hauv ib phau ntawv sib txawv. Nws z-index tam sim no tsuas yog cuam tshuam hauv nws tus kheej cov ntawv tais ceev tseg.

Hauv cov duab hauv qab no, Daim Ntawv B yog tam sim no nyob rau hauv cov ntsiab lus stacking ntawm Folder B, thiab tsuas yog tuaj yeem txiav txim nrog lwm cov ntawv hauv daim ntawv tais ceev tseg.

Xav txog, yog tias koj xav tau, tias koj muaj ob lub folders ntawm koj lub rooj:

Folder A
Folder B

.folder-a { z-index: 1; } .folder-b { z-index: 2; }

Cia peb hloov kho lub cim me ntsis. Sab hauv Folder A yog nplooj ntawv tshwj xeeb, z-index: 9999. Sab hauv Folder B yog nplooj ntawv dawb, z-index: 5.

Pab tshwj xeeb

Plain Page

.special-nplooj { z-index: 9999; } .plain-nplooj { z-index: 5; }

Nplooj ntawv twg nyob saum? Nws yog .plain-page nyob rau hauv Folder B. Qhov browser tsis quav ntsej cov ntaub ntawv me nyuam thiab muab ob lub folders ua ntej. Nws pom Folder B (z-index: 2) thiab muab tso rau saum Folder A (z-index: 1) vim peb paub tias ob yog ntau dua ib. Lub caij no, .special-page teem rau z-index: 9999 nplooj ntawv yog nyob rau hauv qab ntawm pawg txawm tias nws z-index yog teem rau qhov siab tshaj plaws tus nqi. Stacking cov ntsiab lus tseem tuaj yeem ua zes (cov ntaub ntawv hauv folders), tsim "tsev neeg tsob ntoo." Tib lub hauv paus ntsiab lus siv: tus menyuam tsis tuaj yeem khiav ntawm nws niam nws txiv cov ntaub ntawv. Tam sim no koj tau txais yuav ua li cas stacking cov ntsiab lus coj zoo li cov folders uas pab pawg thiab reorder txheej, nws tsim nyog nug: vim li cas qee yam khoom - zoo li hloov pauv thiab opacity - tsim cov ntsiab lus tshiab stacking? Nov yog qhov khoom: cov khoom no tsis tsim cov ntsiab lus sib dhos vim lawv saib zoo li cas; lawv ua nws vim li cas browser ua haujlwm hauv qab hood. Thaum koj thov kev hloov pauv, opacity, lim, lossis kev pom, koj tab tom qhia rau lub browser, "Hav, lub caij no yuav txav, tig, lossis ploj, yog li npaj txhij!"

Thaum koj siv cov khoom no, qhov browser tsim cov ntsiab lus tshiab stacking los tswj kev ua haujlwm zoo dua. Qhov no tso cai rau tus browser los tswj cov animations, hloov pauv, thiab pom cov teebmeem ntawm nws tus kheej, txo qhov yuav tsum tau rov suav dua li cas cov ntsiab lus no cuam tshuam nrog lwm nplooj ntawv. Xav txog nws raws li qhov browser hais tias, "Kuv yuav tuav lub nplaub tshev no cais kom kuv tsis tas yuav hloov lub rooj tag nrho txhua zaus ib yam hauv nws hloov." Tab sis muajib sab nyhuv. Thaum lub browser nqa ib lub caij rau hauv nws tus kheej txheej, nws yuav tsum "flatten" txhua yam nyob rau hauv nws, tsim ib tug tshiab stacking ntsiab lus. Nws zoo li muab ib daim nplaub tshev tawm ntawm lub rooj los tuav nws cais; txhua yam hauv cov ntawv tais ceev tseg tau muab faib ua pawg, thiab qhov browser tam sim no kho nws li ib chav tsev thaum txiav txim siab zaum saum dab tsi. Yog li txawm hais tias qhov hloov pauv thiab cov khoom tsis zoo yuav tsis tshwm sim los cuam tshuam rau txoj hauv kev uas cov ntsiab lus teeb pom kev zoo, lawv ua, thiab nws yog rau kev ua tau zoo. Ob peb lwm yam CSS kuj tuaj yeem tsim cov ntsiab lus sib dhos rau cov laj thawj zoo sib xws. MDN muab ib daim ntawv teev tag nrho yog tias koj xav khawb tob. Muaj ob peb tug, uas tsuas yog qhia tau yooj yim npaum li cas nws yog inadvertently tsim ib tug stacking ntsiab lus tsis paub nws. Qhov teeb meem "Unstacking". Cov teeb meem stacking tuaj yeem tshwm sim rau ntau yam, tab sis qee qhov muaj ntau dua li lwm tus. Modal Cheebtsam yog cov qauv classic vim tias lawv yuav tsum toggling cov khoom siv kom "qhib" rau saum txheej saum toj no tag nrho lwm cov ntsiab lus, tom qab ntawd tshem tawm ntawm txheej sab saum toj thaum nws "kaw." Kuv ntseeg siab heev tias peb txhua tus tau khiav mus rau qhov xwm txheej uas peb qhib qhov kev hloov pauv thiab, txawm li cas los xij, nws tsis tshwm sim. Nws tsis yog tias nws tsis qhib kom zoo, tab sis hais tias nws tsis pom nyob rau hauv qis qis ntawm cov ntsiab lus stacking. Qhov no ua rau koj xav tias "ua li cas los?" txij li koj teev:

.overlay { txoj hauj lwm: tsau; /* tsim cov ntsiab lus stacking */ z-index: 1; /* tso lub caij rau ib txheej saum toj no txhua yam */ cev: 0;. dav: 100%; siab: 100vh; overflow: zais; keeb kwm-xim: #00000080; }

Qhov no zoo nkaus li muaj tseeb, tab sis yog tias niam txiv lub ntsiab lus uas muaj lub ntsiab lus modal yog ib qho me nyuam nyob rau hauv lwm yam niam txiv lub ntsiab uas tau teem rau z-index: 1, uas technically muab cov modal nyob rau hauv sublayer obscured los ntawm lub ntsiab nplaub tshev. Cia peb saib ntawm qhov xwm txheej tshwj xeeb thiab ob peb lwm qhov kev sib koom ua ke-cov ntsiab lus pitfalls. Kuv xav tias koj yuav pom tsis tau tsuas yog yooj yim npaum li cas rau inadvertently tsim stacking cov ntsiab lus, tab sis kuj yuav ua li cas mismanage lawv. Tsis tas li, koj yuav rov qab mus rau lub xeev tswj hwm li cas nyob ntawm qhov xwm txheej. Scenario 1: Tus Trapped Modal

Koj tuaj yeem pom tam sim ntawd koj cov modal daig rau hauv cov txheej txheem qis thiab txheeb xyuas tus niam txiv. Browser Extensions Cov neeg tsim khoom ntse tau tsim cov kev txuas ntxiv los pab. Cov cuab yeej zoo li no "CSS Stacking Context Inspector" Chrome txuas ntxiv ntxiv ib qho ntxiv z-index tab rau koj DevTools los qhia koj cov ntaub ntawv hais txog cov ntsiab lus uas tsim cov ntsiab lus stacking.

IDE Extensions Koj tuaj yeem pom cov teeb meem thaum lub sijhawm txhim kho nrog kev txuas ntxiv zoo li qhov no rau VS Code, uas qhia txog cov teeb meem cuam tshuam cov ntsiab lus ncaj qha rau hauv koj tus editor.

Unstacking Thiab Regaining Control Tom qab peb tau txheeb xyuas qhov laj thawj, cov kauj ruam tom ntej yog los daws nws. Muaj ntau txoj hauv kev uas koj tuaj yeem siv los daws qhov teeb meem no, thiab kuv yuav sau lawv raws li kev txiav txim. Koj tuaj yeem xaiv leej twg ntawm txhua qib, txawm li cas los xij; tsis muaj leej twg tuaj yeem yws lossis cuam tshuam lwm tus. Hloov Cov Qauv HTML Qhov no suav hais tias yog qhov kho kom zoo. Txhawm rau kom koj khiav mus rau hauv qhov teeb meem sib koom ua ke, koj yuav tsum tau tso qee cov ntsiab lus hauv cov haujlwm lom zem hauv koj lub HTML. Restructuring nplooj ntawv yuav pab koj reshape DOM thiab tshem tawm cov teeb meem stacking. Nrhiav cov teeb meem thiab tshem tawm nws los ntawm cov khoom ntxiab hauv HTML markup. Piv txwv li, peb tuaj yeem daws qhov teeb meem thawj zaug, "Lub Trapped Modal," los ntawm kev txav lub .modal-container tawm ntawm lub header thiab muab tso rau hauv lub ntsiab ntawm nws tus kheej.

Header

Cov ntsiab lus tseem ceeb

Cov ntsiab lus no muaj z-index ntawm 2 thiab tseem yuav tsis npog lub modal.

Thaum koj nias lub pob "Qhib Modal", lub modal yog nyob rau pem hauv ntej ntawm txhua yam raws li nws yuav tsum tau. Saib tus cwj mem Scenario 1: Tus Trapped Modal (Kev daws) [forked] los ntawm Shoyombo Gabriel Ayomide. Kho CovParent Stacking Context hauv CSS Yuav ua li cas yog tias lub ntsiab yog ib qho koj tuaj yeem txav tsis tau qhov teeb meem? Nws yog qhov zoo dua los daws qhov teeb meem: niam txiv tsim cov ntsiab lus. Nrhiav CSS cov cuab yeej (lossis cov khoom) lub luag haujlwm rau kev ua kom lub ntsiab lus thiab tshem tawm nws. Yog tias nws muaj lub hom phiaj thiab tsis tuaj yeem raug tshem tawm, muab tus niam txiv tus nqi z-index ntau dua li nws cov kwv tij hais kom nqa tag nrho lub thawv. Nrog rau tus nqi z-index ntau dua, lub thawv niam txiv txav mus rau sab saum toj, thiab nws cov me nyuam tshwm los ze rau tus neeg siv. Raws li qhov peb tau kawm hauv "Lub Submerged Dropdown" scenario, peb tsis tuaj yeem txav lub dropdown tawm ntawm navbar; nws yuav tsis tsim nyog. Txawm li cas los xij, peb tuaj yeem nce tus nqi z-index ntawm lub thawv .navbar kom ntau dua li .cov ntsiab lus lub z-index tus nqi. .navbar { keeb kwm: #333; /* z-index: 1; */ z:3 ;ua. txoj hauj lwm: txheeb ze; }

Nrog rau qhov kev hloov no, .dropdown-menu tam sim no tshwm nyob rau hauv pem hauv ntej ntawm cov ntsiab lus yam tsis muaj teeb meem. Saib Pen Scenario 2: Lub Submerged Dropdown (Kev daws) [forked] los ntawm Shoyombo Gabriel Ayomide. Sim Portals, Yog Siv Lub Ncej Nyob rau hauv lub moj khaum zoo li React lossis Vue, Portal yog qhov tshwj xeeb uas tso cai rau koj los ua ib feem sab nraud nws cov niam txiv ib txwm nyob hauv DOM. Portals zoo li cov khoom siv teleportation rau koj cov khoom. Lawv tso cai rau koj ua ib feem ntawm HTML nyob txhua qhov chaw hauv cov ntaub ntawv (feem ntau yog txoj cai rau hauv document.body) thaum ua kom nws muaj kev sib txuas nrog nws tus niam txiv qub rau cov khoom siv, xeev, thiab cov xwm txheej. Qhov no yog qhov zoo tshaj plaws rau kev khiav tawm stacking cov ntsiab lus ntxiab vim tias cov khoom tso tawm tau tshwm sim sab nraum lub thawv niam txiv teeb meem. ReactDOM.createPortal( , document.lub cev );

Qhov no ua kom koj cov ntsiab lus poob qis tsis zais tom qab nws niam nws txiv, txawm tias niam txiv muaj dhau lawm: zais lossis qis z-index. Hauv qhov xwm txheej "Cov cuab yeej Clipped" peb tau saib ua ntej, kuv siv Portal los cawm cov lus qhia los ntawm cov dej ntws: zais clip los ntawm muab tso rau hauv cov ntaub ntawv lub cev thiab muab tso rau saum toj kawg nkaus hauv lub thawv. Saib tus cwj mem Scenario 3: Lub Clipped Tooltip (Kev daws) [forked] los ntawm Shoyombo Gabriel Ayomide. Taw qhia Cov Ntsiab Lus Stacking yam tsis muaj kev cuam tshuam Txhua txoj hauv kev tau piav qhia hauv ntu dhau los yog tsom rau "unstacking" cov ntsiab lus los ntawm cov ntsiab lus teeb meem stacking, tab sis muaj qee qhov xwm txheej uas koj yuav xav tau tiag tiag lossis xav tsim cov ntsiab lus stacking. Tsim cov ntsiab lus tshiab stacking yog ib qho yooj yim, tab sis txhua txoj hauv kev tuaj nrog cov kev mob tshwm sim. Ntawd yog, tsuas yog siv kev cais tawm: cais. Thaum siv rau ib lub ntsiab lus, cov ntsiab lus stacking ntawm lub ntsiab lus cov me nyuam yog txiav txim siab rau txhua tus me nyuam thiab nyob rau hauv cov ntsiab lus ntawd, es tsis yog cuam tshuam los ntawm cov ntsiab lus sab nraud ntawm nws. Ib qho piv txwv classic yog muab cov ntsiab lus tsis zoo, xws li z-index: -1. Xav txog tias koj muaj .card tivthaiv. Koj xav ntxiv cov duab zoo nkauj uas zaum tom qab .card cov ntawv nyeem, tab sis nyob rau sab saum toj ntawm daim npav keeb kwm yav dhau. Yog tsis muaj stacking ntsiab lus ntawm daim npav, z-index: -1 xa cov duab mus rau hauv qab ntawm lub hauv paus stacking ntsiab lus (tag nrho nplooj). Qhov no ua rau nws ploj tom qab .card's dawb tom qab: Saib Pen Negative z-index (teeb meem) [forked] los ntawm Shoyombo Gabriel Ayomide. Txhawm rau daws qhov no, peb tshaj tawm kev cais tawm: cais ntawm niam txiv .card: Saib Pen Negative z-index (kev daws) [forked] los ntawm Shoyombo Gabriel Ayomide. Tam sim no, lub .card keeb nws tus kheej dhau los ua cov ntsiab lus sib dhos. Thaum nws cov menyuam lub caij - cov duab zoo nkauj tsim rau ntawm : ua ntej pseudo-element - muaj z-index: -1, nws mus rau hauv qab ntawm niam txiv cov ntsiab lus stacking. Nws zaum zoo kawg nkaus tom qab cov ntawv nyeem thiab nyob rau sab saum toj ntawm daim npav keeb kwm yav dhau, raws li tau npaj tseg. Xaus Nco ntsoov: lwm zaus koj z-index zoo li tsis muaj kev tswj hwm, nws yog cov ntsiab lus cuam tshuam nrog. Cov ntaub ntawv

Stacking ntsiab lus (MDN) Z-index thiab stacking cov ntsiab lus (web.dev) "Yuav ua li cas los tsim ib tug tshiab Stacking ntsiab lus nrog cov khoom cais nyob rau hauv CSS", Natalie Pina "Dab Tsi Heck, z-index ???", Josh Comeau

Nyeem ntxiv Ntawm SmashingMag

"Kev Tswj CSS Z-Index Hauv Cov Haujlwm Loj", Steven Frieson "Npaj taub hau thiab Tag Nrho Qhov siab: Ib qho kev sib xyaw ua ke", Philip Braunen "Kev Tswj Z-Index Hauv Ib Daim Ntawv Thov Siv Hauv Web", Pavel Pomerantsev "Z-Index CSS Property: Kev Pom Zoo", Louis Lazaris

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free