Zomwe zimachitika nthawi zonse zimakhala zofanana, zomwe ndi tebulo la data mkati mwa chidebe chosunthika. Mzere uliwonse uli ndi menyu yochitirapo kanthu, kutsitsa kwakung'ono komwe kuli ndi zosankha zina, monga Sinthani, Duplicate, ndi Chotsani. Mumachimanga, chikuwoneka kuti chimagwira ntchito mwapadera, ndiyeno wina amachiyika mkati mwa div yopukutira ndipo zinthu zimagwa. Ndawona cholakwikacho m'ma codebase atatu osiyanasiyana: chidebe, stack, ndi chimango, zonse zosiyana. Vutoli, komabe, ndilofanana kwathunthu. Chotsitsacho chimadulidwa pamwamba pa chidebecho. Kapena zimawonekera kumbuyo zomwe ziyenera kukhala pansi pake. Kapena imagwira ntchito bwino mpaka wogwiritsa ntchito apukutu, ndiyeno imasuntha. Mumafika pa z-index: 9999. Nthawi zina zimathandiza, koma nthawi zina sizimachita chilichonse. Kusagwirizana kumeneko ndi chizindikiro choyamba chakuti chinachake chozama chikuchitika. Chifukwa chomwe chimabwereranso ndikuti makina atatu osiyana asakatuli akukhudzidwa, ndipo opanga ambiri amamvetsetsa iliyonse payokha koma samaganizira zomwe zimachitika zonse zitatu zikawombana: kusefukira, kusungika, komanso kukhala ndi midadada.

Mukamvetsetsa momwe onse atatu amalumikizirana, mitundu yolephera imasiya kumva mwachisawawa. Ndipotu, zimakhala zodziwikiratu. Zinthu Zitatu Zomwe Zimayambitsa Izi Tiyeni tiwone chilichonse mwazinthuzo mwatsatanetsatane. Vuto Losefukira Mukayika kusefukira: zobisika, kusefukira: pukutani, kapena kusefukira: auto pa chinthu, msakatuli amadula chilichonse chomwe chimapitilira malire ake, kuphatikiza mbadwa zokhazikika. .scroll-container { kusefukira: auto; kutalika: 300px; /* Izi zidzatsitsa kutsika, kuyimitsa kwathunthu */ }

.kutsika { udindo: mtheradi; /* Ziribe kanthu -- idadulidwabe ndi .scroll-container */ }

Zimenezo zinandidabwitsa nthaŵi yoyamba imene ndinathamangiramo. Ndinkaganiza kuti: mtheradi ungalole kuti chinthu chichoke pachidebe. Sizikutero. M'malo mwake, izi zikutanthauza kuti menyu yokhazikika imatha kudulidwa ndi kholo lililonse lomwe lili ndi mtengo wosefukira wosawoneka, ngakhale khololo silikhala ndi menyu omwe ali ndi block. Kudulira ndi kuika ndi machitidwe osiyana. Zimangokhalira kugundana m'njira zomwe zimawoneka mwachisawawa mpaka mutamvetsetsa zonse ziwiri.

Nachi chitsanzo cha React pogwiritsa ntchito createPortal:

lowetsani {createPortal} kuchokera ku 'react-dom'; lowetsani {useState, useEffect, useRef } kuchokera ku 'react';

ntchito Dropdown ({ anchorRef, isOpen, ana }) { const [malo, setPosition] = useState({pamwamba: 0, kumanzere: 0});

useEffect (() => { ngati (isOpen && anchorRef.current) { const rect = anchorRef.current.getBoundingClientRect(); setPosition({ pamwamba: rect.bottom + window.scrollY, kumanzere: rect.left + window.scrollX, }); } }, [isOpen, anchorRef]);

ngati (!isOpen) kubwerera null;

bwererani createPortal (

{ana}
, chikalata.thupi ); }

Ndipo, ndithudi, sitinganyalanyaze kupezeka. Zinthu zosasunthika zomwe zimawoneka pazolemba ziyenera kukhala zopezeka pa kiyibodi. Ngati dongosolo loyang'anako silikuyenda mwachilengedwe pakutsika kokhazikika, muyenera kuyang'anira pogwiritsa ntchito code. Ndikoyeneranso kuwonetsetsa kuti sichikhala pazokambirana zina popanda njira yochotsera. Ameneyo amakulumani inu mu kuyesa kiyibodi. CSS Anchor Positioning: Kumene Ndikuganiza Kuti Izi Zikulowera CSS Anchor Positioning ndiye komwe ndimakonda kwambiri pompano. Sindinadziwe kuti ndi zochuluka bwanji zomwe zidagwiritsidwa ntchito pomwe ndidaziwona koyamba. Zimakulolani kulengeza mgwirizano pakati pa dontho ndi choyambitsa chake mwachindunji mu CSS, ndipo msakatuli amayang'anira zogwirizanitsa. .yambitsa { nangula-dzina: --my-trigger; }

.menyu yotsitsa { udindo: mtheradi; nangula wa malo: --choyambitsa-changa; pamwamba: nangula (pansi); kumanzere: nangula (kumanzere); malo-kuyesera-kugwa: kutembenuza-kutchinga, kutembenuzira-inline; }

Malo-try-fallbacks katundu ndi omwe amachititsa kuti izi zikhale zoyenera kugwiritsa ntchito powerengera pamanja. Msakatuli amayesa kuyika kwina asanaleke, kotero kutsika pansi kwa malo owonera kumangoyang'ana m'mwamba m'malo moduliridwa. Thandizo la msakatuli ndilokhazikika pakusakatula kwa Chromium ndipo likukula mu Safari. Firefox ikufunika polyfill. Phukusi la @oddbird/css-anchor-positioning limakwirira zoyambira. Ndagunda m'mphepete mwake zomwe zimafuna zolakwika zomwe sindimayembekezera, chifukwa chake ziwonetseni ngati zowonjezera kapena kuziphatikiza ndiKubwerera kwa JavaScript kwa Firefox. Mwachidule, kulonjeza koma osati konsekonse panobe. Yesani mu msakatuli womwe mukufuna. Ndipo ponena za kupezeka, kulengeza ubale wowonekera mu CSS sikuuza mtengo wopezeka chilichonse. aria-controls, aria-expanded, aria-haspopup - gawolo likadali pa inu. Nthawi zina Kukonza Kumangosuntha Mbali Ndisanafikire pa portal kapena kuwerengera kolumikizana, nthawi zonse ndimafunsa funso limodzi poyamba: Kodi kutsika uku kukufunika kukhala mkati mwa chidebe cha mipukutu? Ngati sichoncho, kusuntha chizindikirocho kupita pachimake chapamwamba kumathetsa vutoli kwathunthu, popanda JavaScript komanso kuwerengera kogwirizana. Izi sizingatheke nthawi zonse. Ngati batani ndi kutsitsa zikuphatikizidwa mu gawo lomwelo, kusuntha imodzi popanda ina kumatanthauza kuganiziranso API yonse. Koma mukatha kuchita, palibe chomwe mungachite. Vuto kulibe. Zomwe CSS Zamakono Sizikuthabe CSS yafika patali pano, koma pali malo omwe amakugwetsani pansi. Udindo: zovuta zokhazikika ndi zosintha zikadalipo. Zili mwadala, zomwe zikutanthauza kuti palibe CSS workaround yomwe ilipo. Ngati mukugwiritsa ntchito laibulale yamakanema yomwe imakutira masanjidwe anu mu chinthu chosinthidwa, mwabwereranso pakufuna ma portal kapena nangula. CSS Anchor Positioning ikulonjeza, koma yatsopano. Monga tanena kale, Firefox imafunikirabe polyfill panthawi yomwe ndikulemba izi. Ndidachitapo kanthu pazida zomwe zimafunikira zomwe sindimayembekezera. Ngati mukufuna kuchita zinthu mosasinthasintha pa asakatuli onse lero, mukufikabe ku JavaScript pazinthu zovuta. Zowonjezera zomwe ndasinthira momwe ndimagwirira ntchito ndi HTML Popover API, yomwe tsopano ikupezeka m'masamba amakono onse. Zinthu zomwe zili ndi mawonekedwe a popover zimapereka pamwamba pa osatsegula, pamwamba pa chilichonse, popanda JavaScript yofunikira.

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