PĂ”hjalik juhend CSS Grid'i radade suuruse mÀÀramise algoritmi mĂ”istmiseks ja valdamiseks, sealhulgas fr-ĂŒhikud, minmax(), auto ja sisupĂ”hine suuruse mÀÀramine.
CSS Grid radade suuruse jaotus: ruumi eraldamise algoritmi valdamine
CSS Grid on vĂ”imas paigutustööriist, mis annab veebiarendajatele enneolematu kontrolli oma veebilehtede struktuuri ĂŒle. Ăks selle peamisi tugevusi seisneb vĂ”imes arukalt jaotada ruumi vĂ”rgustiku radade (read ja veerud) vahel. CSS Grid'i radade suuruse jaotuse algoritmi mĂ”istmine on ĂŒlioluline reageerivate, paindlike ja visuaalselt meeldivate paigutuste loomiseks. See pĂ”hjalik juhend sĂŒveneb sellesse algoritmi, uurides selle erinevaid komponente ja pakkudes praktilisi nĂ€iteid, mis aitavad teil selle keerukustest aru saada.
VÔrgustiku radade ja nende suuruse omaduste mÔistmine
Enne algoritmi sĂŒvenemist defineerime mĂ”ned pĂ”himĂ”isted:
- VÔrgustiku rajad (Grid Tracks): VÔrgustiku read ja veerud.
- VÔrgustiku jooned (Grid Lines): Jooned, mis mÀÀravad vÔrgustiku radade servad.
- VÔrgustiku lahter (Grid Cell): Nelja vÔrgustiku joonega piiratud ala.
VĂ”rgustiku radade suurust saab mÀÀrata erinevate omadustega, millest igaĂŒks mĂ”jutab ruumi jaotamise algoritmi ainulaadsel viisil. Nende omaduste hulka kuuluvad:
- Fikseeritud suurused: Pikslite (px), em-ide, rem-ide vĂ”i muude absoluutsete ĂŒhikute kasutamine radade suuruste mÀÀramiseks.
- Protsentuaalsed suurused: Radade suuruse mÀÀramine protsendina vÔrgustiku konteineri suurusest.
- fr-ĂŒhik: MurdosaĂŒhik, mis tĂ€histab osa vĂ”rgustiku konteineris saadaolevast ruumist.
- auto: VÔimaldab rajal oma suuruse mÀÀrata sisu vÔi saadaoleva ruumi pÔhjal.
- minmax(): MÀÀrab raja minimaalse ja maksimaalse suuruse.
- sisupÔhised suuruse mÀÀramise vÔtmesÔnad: nagu
min-content
,max-content
jafit-content()
CSS Grid radade suuruse jaotamise algoritm: samm-sammuline juhend
CSS Grid'i radade suuruse jaotamise algoritmi saab jagada mitmeks eraldiseisvaks sammuks. Nende sammude mÔistmine aitab teil ennustada, kuidas vÔrgustik ruumi jaotab, ja lahendada vÔimalikke paigutusprobleeme.
1. samm: VÔrgustiku konteineri suuruse mÀÀramine
Algoritm algab vÔrgustiku konteineri suuruse mÀÀramisega. Seda mÔjutavad konteineri width
ja height
omadused, samuti konteinerile rakendatud polsterdus (padding), veerised (margin) vÔi ÀÀrised (border).
NĂ€ide:
.grid-container {
width: 800px;
height: 600px;
padding: 20px;
}
Selles nÀites on vÔrgustiku radade jaoks saadaolev ruum laiuses 800px - (20px * 2) = 760px ja kÔrguses 600px - (20px * 2) = 560px. Polsterdus arvatakse kogulaiusest ja -kÔrgusest maha, kuna see vÔtab ruumi konteineri sees.
2. samm: Fikseeritud suurusega radade suuruse mÀÀramine
JÀrgmisena eraldab algoritm ruumi fikseeritud suurusega radadele (nt kasutades piksleid, em-e vÔi rem-e). Nende radade suurus mÀÀratakse vastavalt nende mÀÀratud vÀÀrtustele ja see ruum reserveeritakse. See on sageli kÔige lihtsam samm. Rajad, mis on mÀÀratletud px
, em
, rem
vĂ”i sarnaste fikseeritud pikkusega ĂŒhikutega, saavad tĂ€pselt selle suuruse.
NĂ€ide:
.grid-container {
display: grid;
grid-template-columns: 100px 200px auto;
grid-template-rows: 50px auto 100px;
}
Selles nĂ€ites on esimene veerg alati 100px lai, teine veerg 200px lai, esimene rida 50px kĂ”rge ja kolmas rida 100px kĂ”rge. Need suurused arvatakse ĂŒlejÀÀnud radade jaoks saadaolevast ruumist maha.
3. samm: 'auto' vÔtmesÔnaga radade suuruse mÀÀramine
auto
vÔtmesÔnaga mÀÀratud rajad vÔivad kÀituda erinevalt sÔltuvalt teistest vÔrgustiku radadest. Spetsifikatsioon mÀÀratleb mitu eraldi alamprogrammi auto
vÔtmesÔna lahendamiseks vÔrgustiku paigutuse ajal. Praegu vaatleme kÔige lihtsamat juhtumit: kui saadaval on piisavalt ruumi, laieneb rada oma sisu mahutamiseks. Kui mitte, siis kahaneb see oma minimaalse sisu suuruseni.
NĂ€ide:
.grid-container {
display: grid;
grid-template-columns: 100px auto 1fr;
}
.grid-item {
min-width: 50px;
}
Selles nÀites, kui teise veeru sisu nÔuab rohkem kui 50px laiust (.grid-item
'i min-width
tÔttu), laieneb veerg selle mahutamiseks. Kui sisu on vÀiksem kui 50px, kasutatakse vaikimisi sisu suurust. Kui aga saadaolev ruum on piiratud, vÔib veerg kahaneda 50px-ni vÔi isegi vÀiksemaks, et mahtuda konteinerisse.
4. samm: Sisemiste radade suuruste lahendamine
See samm hĂ”lmab radade minimaalse ja maksimaalse sisu suuruse mÀÀramist. Minimaalne sisu suurus on vĂ€ikseim suurus, mis rajal saab olla ilma sisu ĂŒletĂ€itumiseta. Maksimaalne sisu suurus on suurus, mis on vajalik kogu raja sisu kuvamiseks ilma teksti murdmata vĂ”i kĂ€rpimata. Neid suurusi kasutatakse paindliku baassuuruse arvutamiseks, kui kasutatakse fr
ĂŒhikut vĂ”i kui auto
vÔtmesÔna pÔrkub minimaalsete/maksimaalsete piirangutega. CSS Grid Layout spetsifikatsioon mÀÀratleb tÀpselt, kuidas sisemisi suurusi arvutada, mis sÔltub vÔrgustiku elementidele seatud omadustest ja sisust endast.
See samm muutub vÀga oluliseks, kui kasutate radade suuruse otseseks mÀÀramiseks vÔtmesÔnu nagu min-content
vÔi max-content
. Need vÔtmesÔnad annavad vÔrgustikule korralduse mÀÀrata raja suurus selle sisemiste sisu suuruste alusel.
5. samm: Paindlike radade suuruse mÀÀramine (fr-ĂŒhik)
fr
ĂŒhikuga mÀÀratud rajad tĂ€histavad osa vĂ”rgustiku konteineris allesjÀÀnud saadaolevast ruumist pĂ€rast fikseeritud suurusega, protsentuaalse suurusega ja automaatselt suurustatud radade arvessevĂ”tmist. Algoritm arvutab kĂ”igi fr
ĂŒhikute kogusumma ja jagab seejĂ€rel jĂ€relejÀÀnud ruumi proportsionaalselt radade vahel nende fr
vÀÀrtuste alusel.
NĂ€ide:
.grid-container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
}
Selles nÀites on vÔrgustiku konteineril kolm veergu. Esimene veerg vÔtab 1 osa saadaolevast ruumist, teine veerg 2 osa ja kolmas veerg 1 osa. SeetÔttu on teine veerg kaks korda laiem kui esimene ja kolmas veerg.
Kui pÀrast fr
ĂŒhiku alusel ruumi jaotamist mĂ”ned rajad ikka veel oma sisu ĂŒletavad, vaatab algoritm paindlikud rajad uuesti ĂŒle ja vĂ€hendab nende suurusi proportsionaalselt, kuni sisu mahub Ă€ra vĂ”i saavutatakse raja minimaalne suurus.
6. samm: minmax() rakendamine
minmax()
funktsioon vÔimaldab teil mÀÀrata vÔrgustiku rajale minimaalse ja maksimaalse suuruse. See vÔib olla eriti kasulik, kui soovite tagada, et rada ei muutuks kunagi liiga vÀikeseks ega liiga suureks, olenemata selle sisust vÔi saadaolevast ruumist.
NĂ€ide:
.grid-container {
display: grid;
grid-template-columns: 100px minmax(200px, 1fr) 100px;
}
Selles nÀites on teine veerg vÀhemalt 200px lai. Kui jÀrelejÀÀnud ruumi on piisavalt, laieneb see saadaoleva ruumi tÀitmiseks, kasutades 1fr
ĂŒhikut. Kuid see ei ole kunagi vĂ€iksem kui 200px.
Algoritm kÀsitleb esmalt minmax() minimaalset vÀÀrtust raja suurusena ja eraldab ruumi vastavalt. Hiljem, kui on lisaruumi, vÔib see laieneda maksimaalse vÀÀrtuseni. Kui ruumi ei ole piisavalt, on eelistatud minimaalne vÀÀrtus.
7. samm: SisupÔhiste suuruse mÀÀramise vÔtmesÔnade kÀsitlemine
CSS Grid pakub sisupÔhiseid suuruse mÀÀramise vÔtmesÔnu nagu min-content
, max-content
ja fit-content()
, et radade suurust dĂŒnaamiliselt sisu pĂ”hjal mÀÀrata. Need on reageeriva disaini jaoks ÀÀrmiselt vÀÀrtuslikud.
- min-content: Rada on nii kitsas kui vĂ”imalik, ilma et sisu ĂŒle voolaks.
- max-content: Rada on nii lai, kui on vaja kogu sisu kuvamiseks ilma teksti murdmata.
- fit-content(suurus): Rada kÀitub nagu
auto
, kuni see saavutab mÀÀratud suuruse, misjÀrel see enam ei kasva.
NĂ€ide:
.grid-container {
display: grid;
grid-template-columns: min-content max-content fit-content(300px);
}
Esimene veerg on ainult nii lai, kui selle kitsaim sisu. Teine veerg laieneb, et kuvada kogu sisu ilma teksti murdmata. Kolmas veerg kasvab sisu suurenedes, kuid peatub 300px juures.
8. samm: Ălevoolude kĂ€sitlemine
Kui isegi pĂ€rast ĂŒlaltoodud sammude abil ruumi jaotamist sisu ikka veel oma vĂ”rgustiku lahtrist ĂŒle voolab, saab overflow
omadust kasutada ĂŒlevoolu kĂ€sitlemise kontrollimiseks. Levinumad overflow
omaduse vÀÀrtused on:
- visible: Ălevoolav sisu on nĂ€htav vĂ€ljaspool vĂ”rgustiku lahtrit (vaikimisi).
- hidden: Ălevoolav sisu lĂ”igatakse Ă€ra.
- scroll: VĂ”rgustiku lahtrile lisatakse kerimisribad, et kasutajad saaksid ĂŒlevoolavat sisu kerida.
- auto: Kerimisribad lisatakse ainult siis, kui sisu voolab ĂŒle.
Praktilised nÀited ja kasutusjuhud
Uurime mÔningaid praktilisi nÀiteid, kuidas kasutada CSS Grid'i radade suuruse jaotamise algoritmi levinud paigutuste loomiseks:
NÀide 1: VÔrdse kÔrgusega veerud
VÔrdse kÔrgusega veergude saavutamine on levinud paigutusnÔue. CSS Grid'iga on see hÔlpsasti saavutatav, kasutades 1fr
ĂŒhikut.
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
height: 300px; /* TÀhtis: Vajalik on selgesÔnaline kÔrgus */
}
.grid-item {
background-color: #eee;
padding: 20px;
border: 1px solid #ccc;
}
Selles nÀites on kÔik kolm veergu vÔrdse laiusega ja kuna vÔrgustiku konteineril on mÀÀratud kÔrgus, venivad kÔik vÔrgustiku elemendid automaatselt, et tÀita saadaolev kÔrgus, tulemuseks on vÔrdse kÔrgusega veerud. Pange tÀhele, kui oluline on vÔrgustiku konteinerile selgesÔnalise kÔrguse mÀÀramine.
NĂ€ide 2: KĂŒlgriba paigutus
Fikseeritud laiusega kĂŒlgriba ja paindliku pĂ”hisisu alaga kĂŒlgriba paigutuse loomine on veel ĂŒks levinud kasutusjuht.
.grid-container {
display: grid;
grid-template-columns: 200px 1fr;
}
.sidebar {
background-color: #f0f0f0;
padding: 20px;
}
.main-content {
padding: 20px;
}
Selles nĂ€ites on kĂŒlgriba alati 200px lai ja pĂ”hisisu ala laieneb, et tĂ€ita ĂŒlejÀÀnud saadaolev ruum.
NĂ€ide 3: Reageeriv pildigalerii
CSS Grid sobib hÀsti reageerivate pildigaleriide loomiseks, mis kohanduvad erinevate ekraanisuurustega.
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-gap: 10px;
}
.grid-item {
img {
width: 100%;
height: auto;
display: block;
}
}
Selles nÀites loob repeat(auto-fit, minmax(200px, 1fr))
sĂŒntaks nii palju veerge kui vĂ”imalik, igaĂŒhe minimaalne laius on 200px ja maksimaalne laius 1fr. See tagab, et pildid tĂ€idavad alati saadaoleva ruumi ja murduvad vajadusel jĂ€rgmisele reale. grid-gap
omadus lisab piltide vahele vahe.
NĂ€ide 4: Keeruline paigutus minmax() ja fr-ga
.grid-container {
display: grid;
grid-template-columns: minmax(150px, 25%) 1fr minmax(100px, 15%);
grid-template-rows: auto 1fr auto;
height: 500px;
}
.header { grid-area: 1 / 1 / 2 / 4; background-color: #eee; }
.sidebar { grid-area: 2 / 1 / 3 / 2; background-color: #ddd; }
.content { grid-area: 2 / 2 / 3 / 3; background-color: #ccc; }
.ads { grid-area: 2 / 3 / 3 / 4; background-color: #bbb; }
.footer { grid-area: 3 / 1 / 4 / 4; background-color: #aaa; }
.grid-item { padding: 10px; border: 1px solid black; }
See nÀide kasutab minmax()
-i, et mÀÀrata kĂŒlgriba ja reklaamide jaotiste jaoks paindlikud laiused, tagades, et need ei muutuks kunagi liiga kitsaks. 1fr
ĂŒhikut kasutatakse pĂ”hisisu ala jaoks, vĂ”imaldades sellel tĂ€ita ĂŒlejÀÀnud ruumi. See kombinatsioon pakub paindlikku ja reageerivat paigutust.
CSS Grid radade suuruse mÀÀramise parimad tavad
Siin on mÔned parimad tavad, mida meeles pidada CSS Grid'i radade suuruse mÀÀramisega töötamisel:
- Kasutage paindlike paigutuste jaoks
fr
ĂŒhikuid:fr
ĂŒhik on ideaalne paigutuste loomiseks, mis kohanduvad erinevate ekraanisuurustega. - Kasutage
minmax()
, et mÀÀrata minimaalsed ja maksimaalsed raja suurused: See tagab, et rajad ei muutuks kunagi liiga vÀikeseks ega liiga suureks, olenemata nende sisust. - Kaaluge sisupÔhiseid suuruse mÀÀramise vÔtmesÔnu: Need vÔivad olla vÀga abiks reageerivate paigutuste puhul, mis kohanduvad erineva pikkusega sisuga.
- Testige oma paigutusi erinevatel seadmetel ja ekraanisuurustel: See on ĂŒlioluline tagamaks, et teie paigutused on tĂ”eliselt reageerivad ja visuaalselt meeldivad. Kasutage brauseri arendajatööriistu erinevate ekraanisuuruste ja seadme orientatsioonide simuleerimiseks.
- Alustage mobiil-eelkÔige lÀhenemisega: Kujundage oma paigutused esmalt vÀiksematele ekraanidele ja seejÀrel tÀiustage neid jÀrk-jÀrgult suuremate ekraanide jaoks. See tagab, et teie paigutused on kÀttesaadavad kasutajatele kÔikides seadmetes.
- Kasutage kirjeldavaid klassinimesid: Kasutage klassinimesid, mis nÀitavad selgelt iga vÔrgustiku elemendi eesmÀrki. See muudab teie CSS-koodi lihtsamini mÔistetavaks ja hooldatavaks.
- Kommenteerige oma CSS-koodi: Lisage oma CSS-koodile kommentaare, et selgitada erinevate jaotiste ja omaduste eesmÀrki. See muudab teie ja teiste jaoks koodi mÔistmise ja hooldamise lihtsamaks.
Levinud vÔrgustiku paigutuse probleemide lahendamine
Isegi hea arusaamaga CSS Grid'i radade suuruse jaotamise algoritmist vÔite siiski kohata mÔningaid levinud paigutusprobleeme. Siin on mÔned nÀpunÀited nende probleemide lahendamiseks:
- Rajad ei ole ootuspĂ€rase suurusega: Kontrollige oma radade suuruse vÀÀrtusi, et veenduda nende Ă”igsuses. Samuti veenduge, et te ei kirjuta oma radade suuruse vÀÀrtusi tahtmatult ĂŒle teiste CSS-omadustega.
- Sisu voolab oma vĂ”rgustiku lahtrist ĂŒle: Kasutage
overflow
omadust, et kontrollida, kuidas ĂŒlevoolu kĂ€sitletakse. Saate ka oma radade suuruse vÀÀrtusi kohandada, et tagada sisu jaoks piisavalt ruumi. - VĂ”rgustiku elemendid ei joondu Ă”igesti: Kasutage
justify-items
,align-items
,justify-content
jaalign-content
omadusi, et kontrollida vÔrgustiku elementide joondamist nende vÔrgustiku lahtrites ja vÔrgustiku konteineris. - VÔrgustiku vahed ei ilmu ootuspÀraselt: Veenduge, et
grid-gap
omadus on vÔrgustiku konteinerile Ôigesti rakendatud. Samuti veenduge, et pole muid CSS-omadusi, mis segaksid vÔrgustiku vahesid.
EdasijÔudnute tehnikad
Kui olete CSS Grid'i radade suuruse mÀÀramise pÔhitÔed selgeks saanud, vÔite uurida mÔningaid edasijÔudnute tehnikaid veelgi keerukamate paigutuste loomiseks.
Pesastatud vÔrgustikud (Nested Grids)
CSS Grid vÔimaldab teil vÔrgustikke teiste vÔrgustike sisse pesastada. See vÔib olla kasulik hierarhiliste struktuuridega keerukate paigutuste loomiseks.
Nimega vÔrgustiku alad (Named Grid Areas)
Nimega vÔrgustiku alad vÔimaldavad teil oma vÔrgustikus mÀÀratleda konkreetsed alad ja mÀÀrata vÔrgustiku elemendid nendesse aladesse, kasutades grid-area
omadust. See vÔib muuta teie CSS-koodi loetavamaks ja hooldatavamaks.
Automaatne voog (Autoflow)
grid-auto-flow
omadus kontrollib, kuidas vÔrgustiku elemendid automaatselt vÔrgustikku paigutatakse, kui neid ei ole selgesÔnaliselt paigutatud, kasutades grid-column
ja grid-row
omadusi. See vĂ”ib olla kasulik dĂŒnaamiliste paigutuste loomiseks, kus vĂ”rgustiku elementide arv ei ole ette teada.
KokkuvÔte
CSS Grid'i radade suuruse jaotamise algoritmi mÔistmine on oluline reageerivate, paindlike ja visuaalselt meeldivate veebipaigutuste loomiseks. Valdades erinevaid suuruse mÀÀramise omadusi, sealhulgas fikseeritud suurusi, protsentuaalseid suurusi, fr
ĂŒhikuid, auto
ja minmax()
, saate oma vĂ”rgustiku paigutuste ĂŒle tĂ€ieliku kontrolli ja luua tĂ”eliselt unikaalseid ja kaasahaaravaid kasutajakogemusi. VĂ”tke omaks CSS Grid'i paindlikkus ja vĂ”imsus ning avage uus kontrollitase oma veebidisainide ĂŒle.
JĂ€tkake katsetamist erinevate suuruse mÀÀramise omaduste ja tehnikate kombinatsioonidega, et leida parim lĂ€henemine oma konkreetsetele paigutusvajadustele. Kogemuste kasvades areneb teil sĂŒgavam arusaam algoritmist ja te muutute osavamaks keerukate ja reageerivate vĂ”rgustiku paigutuste loomisel.