Eesti

Avastage CSS-i vaateakna ühikute (vw, vh, vmin, vmax, vi, vb) võimsus, et luua tõeliselt reageerivaid ja skaleeritavaid veebiküljendusi, mis kohanduvad sujuvalt iga seadmega. Õppige praktilisi rakendusi, parimaid tavasid ja täiustatud tehnikaid.

CSS-i vaateakna ühikute meisterlik kasutamine: põhjalik juhend reageeriva disaini kohta

Pidevalt arenevas veebiarenduse maailmas on esmatähtis luua reageerivaid disaine, mis kohanduvad sujuvalt erinevate ekraanisuurustega. CSS-i vaateakna ühikud (vw, vh, vmin, vmax, vi ja vb) pakuvad selle saavutamiseks võimsat viisi, pakkudes paindlikku ja skaleeritavat lähenemist elementide suuruse määramisel vastavalt vaateaknale. See põhjalik juhend süveneb vaateakna ühikute keerukustesse, uurides nende funktsionaalsust, praktilisi rakendusi ja parimaid rakendustavasid.

Vaateakna ühikute mõistmine

Vaateakna ühikud on CSS-i suhtelised pikkusühikud, mis põhinevad brauseri vaateakna suurusel. Erinevalt fikseeritud ühikutest nagu pikslid (px), mis jäävad ekraani suurusest olenemata konstantseks, kohandavad vaateakna ühikud oma väärtusi dünaamiliselt vastavalt vaateakna mõõtmetele. See kohanemisvõime muudab need ideaalseks voolavate ja reageerivate küljenduste loomiseks, mis näevad head välja igas seadmes, alates nutitelefonidest kuni suurte lauaarvutite monitorideni. Peamine eelis on see, et vaateakna ühikutega ehitatud disainid skaleeruvad harmooniliselt, säilitades proportsioonid ja visuaalse atraktiivsuse erinevatel ekraaniresolutsioonidel.

Põhilised vaateakna ühikud: vw, vh, vmin, vmax

Loogilised vaateakna ühikud: vi, vb

Uuemad loogilised vaateakna ühikud, vi ja vb, on vastavalt seotud vaateakna *inline* (reasisene) ja *block* (plokk) mõõtmetega. Need ühikud on tundlikud dokumendi kirjutamisrežiimi ja teksti suuna suhtes, mis muudab need eriti kasulikuks rahvusvahelistele veebisaitidele. See võimaldab luua küljendusi, mis on olemuslikult kohandatavad erinevatele kirjasüsteemidele.

Näide: Vaatleme veebisaiti, mis on loodud nii inglise (vasakult paremale) kui ka araabia (paremalt vasakule) keele jaoks. Kasutades konteineri külgedel polstri või veerise jaoks vi-d, kohandub see automaatselt õigele poolele vastavalt keele suunale, tagades ühtlase vahe olenemata kasutaja keele-eelistusest.

Vaateakna ühikute praktilised rakendused

Vaateakna ühikuid saab kasutada mitmesugustes stsenaariumides, et luua reageerivaid ja visuaalselt atraktiivseid veebiküljendusi. Siin on mõned levinud kasutusjuhud:

1. Täiskõrgusega jaotised

Täiskõrgusega jaotiste loomine, mis ulatuvad üle kogu vaateakna, on levinud disainimuster. Vaateakna ühikud muudavad selle uskumatult lihtsaks:

.full-height-section {
 height: 100vh;
 width: 100vw; /* Tagab, et see täidab ka kogu laiuse */
}

See koodilõik tagab, et element .full-height-section hõivab alati kogu vaateakna kõrguse, olenemata ekraani suurusest. width: 100vw; tagab, et element täidab ka kogu laiuse, luues tõeliselt täisvaateakna jaotise.

2. Reageeriv tüpograafia

Vaateakna ühikuid saab kasutada reageeriva tüpograafia loomiseks, mis skaleerub proportsionaalselt vaateakna suurusega. See tagab, et tekst jääb loetavaks ja visuaalselt atraktiivseks kõigis seadmetes.

h1 {
 font-size: 8vw; /* Fondi suurus skaleerub vastavalt vaateakna laiusele */
}

p {
 font-size: 2vh; /* Fondi suurus skaleerub vastavalt vaateakna kõrgusele */
}

Selles näites on elemendi h1 font-size seatud väärtusele 8vw, mis tähendab, et see on 8% vaateakna laiusest. Vaateakna laiuse muutudes kohandub ka fondi suurus vastavalt. Sarnaselt on elemendi p font-size seatud väärtusele 2vh, skaleerudes koos vaateakna kõrgusega.

3. Kuvasuhtega kastid

Piltide ja videote kuvasuhete säilitamine võib olla keeruline, kuid vaateakna ühikud koos padding-top trikiga pakuvad lihtsa lahenduse:

.aspect-ratio-box {
 width: 100%;
 position: relative;
}

.aspect-ratio-box::before {
 content: "";
 display: block;
 padding-top: 56.25%; /* 16:9 kuvasuhe (kõrgus/laius * 100) */
}

.aspect-ratio-box > * {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
}

See tehnika kasutab pseudoelementi (::before) koos padding-top väärtusega, mis on arvutatud soovitud kuvasuhte alusel (antud juhul 16:9). Sisu elemendi .aspect-ratio-box sees paigutatakse seejärel absoluutselt, et täita olemasolev ruum, säilitades kuvasuhte olenemata ekraani suurusest. See on äärmiselt kasulik videote või piltide manustamiseks, mis peavad säilitama oma proportsioonid.

4. Voolavate võrgustikuküljenduste loomine

Vaateakna ühikuid saab kasutada voolavate võrgustikuküljenduste loomiseks, kus veerud ja read kohanduvad proportsionaalselt vaateakna suurusega. See võib olla eriti kasulik armatuurlaudade ja muude keerukate küljenduste loomisel.

.grid-container {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(20vw, 1fr)); /* Iga veerg on vähemalt 20% vaateakna laiusest */
 grid-gap: 1vw;
}

.grid-item {
 padding: 1vw;
 background-color: #f0f0f0;
}

Siin kasutab omadus grid-template-columns väärtust minmax(20vw, 1fr), et tagada iga veeru laius vähemalt 20% vaateakna laiusest, kuid see võib kasvada, et täita olemasolev ruum. Ka grid-gap on seatud kasutades 1vw, tagades, et vahe võrgustiku elementide vahel skaleerub proportsionaalselt vaateakna suurusega.

5. Reageeriv vahekaugus ja polsterdus

Vahekauguse ja polsterduse kontrollimine vaateakna ühikutega tagab ühtlase visuaalse harmoonia erinevates seadmetes. See tagab, et elemendid ei tundu liiga kokkusurutud ega liiga laialivalguvad, olenemata ekraani suurusest.

.container {
 padding: 5vw;
 margin-bottom: 3vh;
}

Selles näites on elemendil .container polsterdus, mis on 5% vaateakna laiusest igal küljel ja alumine veeris, mis on 3% vaateakna kõrgusest.

6. Skaleeritavad kasutajaliidese elemendid

Nuppe, sisestusvälju ja muid kasutajaliidese elemente saab muuta reageerivamaks, suurustades neid vaateakna ühikute abil. See võimaldab kasutajaliidese komponentidel säilitada oma suhtelised proportsioonid, parandades kasutajakogemust erinevatel ekraanidel.

.button {
 font-size: 2.5vh;
 padding: 1vh 2vw;
 border-radius: 0.5vh;
}

Klass .button on määratletud fondi suurusega, mis põhineb vaateakna kõrgusel (2.5vh), ja polsterdusega, mis põhineb nii vaateakna kõrgusel kui ka laiusel. See tagab, et nupu tekst jääb loetavaks ja nupu suurus kohandub sobivalt erinevate ekraanimõõtmetega.

Parimad tavad vaateakna ühikute kasutamiseks

Kuigi vaateakna ühikud pakuvad võimsat viisi reageerivate disainide loomiseks, on oluline neid kasutada arukalt ja järgida parimaid tavasid, et vältida võimalikke lõkse:

1. Kaaluge miinimum- ja maksimumväärtusi

Vaateakna ühikud võivad mõnikord viia äärmuslike väärtusteni väga väikestel või väga suurtel ekraanidel. Selle vältimiseks kaaluge CSS-i funktsioonide min(), max() ja clamp() kasutamist, et seada vaateakna ühiku väärtustele miinimum- ja maksimumpiirid.

h1 {
 font-size: clamp(2rem, 8vw, 5rem); /* Fondi suurus on vähemalt 2rem, maksimaalselt 5rem ja skaleerub vahepeal vastavalt vaateakna laiusele */
}

Funktsioon clamp() võtab kolm argumenti: miinimumväärtus, eelistatud väärtus ja maksimumväärtus. Selles näites on font-size vähemalt 2rem, maksimaalselt 5rem ja skaleerub proportsionaalselt vaateakna laiusega (8vw) nende piiride vahel. See hoiab ära teksti muutumise liiga väikeseks väikestel ekraanidel või liiga suureks suurtel ekraanidel.

2. Kombineerige teiste ühikutega

Vaateakna ühikud toimivad kõige paremini, kui neid kombineerida teiste CSS-i ühikutega, nagu em, rem ja px. See võimaldab teil luua nüansirikkama ja paindlikuma disaini, mis võtab arvesse nii vaateakna suurust kui ka sisu konteksti.

p {
 font-size: calc(1rem + 0.5vw); /* Baasfondi suurus 1rem pluss skaleerimistegur */
 line-height: 1.6;
}

Selles näites arvutatakse font-size funktsiooni calc() abil, mis lisab baasfondi suurusele 1rem skaleerimisteguri 0.5vw. See tagab, et tekst on alati loetav, isegi väikestel ekraanidel, samal ajal skaleerudes proportsionaalselt vaateakna suurusega.

3. Testige erinevates seadmetes ja brauserites

Nagu iga veebiarenduse tehnika puhul, on ülioluline testida oma disaine erinevates seadmetes ja brauserites, et tagada brauseriteülene ühilduvus ja optimaalne jõudlus. Kasutage brauseri arendajatööriistu erinevate ekraanisuuruste ja resolutsioonide simuleerimiseks ning testige oma disaine võimaluse korral ka tegelikes füüsilistes seadmetes. Kuigi üldiselt hästi toetatud, võivad brauserite vahel esineda peeneid erinevusi.

4. Arvestage ligipääsetavusega

Kasutades vaateakna ühikuid tüpograafia jaoks, veenduge, et tekst jääb loetavaks ja ligipääsetavaks puuetega kasutajatele. Pöörake tähelepanu värvikontrastile, fondi suurusele ja reavahele, et tagada teksti lihtne lugemine kõigile kasutajatele. Tööriistad nagu WebAIM-i kontrasti kontrollija võivad olla abiks sobivate värvikontrasti suhete määramisel. Samuti vältige `font-size` või muude suurusega seotud omaduste seadmist otse `html`-elemendile vaateakna ühikutega, kuna see võib segada kasutaja eelistusi teksti suuruse osas.

5. Kasutage koos CSS-i muutujatega (kohandatud omadused)

CSS-i muutujate (kohandatud omaduste) kasutamine koos vaateakna ühikutega parandab hooldatavust ja võimaldab lihtsamaid kohandusi kogu stiililehel.

:root {
 --base-padding: 2vw;
}

.element {
 padding: var(--base-padding);
}

.another-element {
 margin-left: var(--base-padding);
}

Selles näites on muutuja --base-padding defineeritud väärtusega 2vw. Seda muutujat kasutatakse seejärel erinevate elementide polsterduse ja veerise seadmiseks, mis võimaldab teil hõlpsasti kohandada vahekaugust kogu veebisaidil, muutes muutuja väärtust ühes kohas.

Täiustatud tehnikad ja kaalutlused

1. JavaScripti kasutamine dünaamilisteks kohandusteks

Teatud stsenaariumides võib teil tekkida vajadus dünaamiliselt kohandada vaateakna ühiku väärtusi vastavalt kasutaja interaktsioonidele või muudele sündmustele. JavaScripti saab kasutada vaateakna mõõtmete hankimiseks ja CSS-i muutujate vastavaks värskendamiseks.

// JavaScript
function updateViewportVariables() {
 const vh = window.innerHeight * 0.01;
 document.documentElement.style.setProperty('--vh', `${vh}px`);
}

window.addEventListener('resize', updateViewportVariables);
updateViewportVariables(); // Esmakutse

// CSS
.element {
 height: calc(var(--vh, 1vh) * 50); /* Tagavara 1vh, kui --vh pole defineeritud */
}

See koodilõik kasutab JavaScripti vaateakna kõrguse arvutamiseks ja vastava CSS-i muutuja (--vh) seadmiseks. Element .element kasutab seejärel seda muutujat oma kõrguse seadmiseks, tagades, et see hõivab alati 50% vaateakna kõrgusest. Tagavara 1vh tagab, et elemendil on mõistlik kõrgus ka siis, kui CSS-i muutuja pole õigesti seadistatud.

2. Mobiilse klaviatuuri nähtavuse haldamine

Mobiilseadmetes võib vaateakna suurus muutuda, kui kuvatakse virtuaalne klaviatuur. See võib põhjustada probleeme küljendustega, mis tuginevad täiskõrgusega jaotiste jaoks vaateakna ühikutele. Üks lähenemine selle leevendamiseks on kasutada suuri, väikeseid ja dünaamilisi vaateakna ühikuid, mis võimaldavad arendajatel nende stsenaariumide käitumist täpsustada. Need on saadaval ühikutega lvh, svh ja dvh. Ühik dvh kohandub, kui ekraaniklaviatuur kuvatakse. Pange tähele, et tugi võib mõnes vanemas brauseris olla piiratud.

.full-height-section {
 height: 100dvh;
}

3. Jõudluse optimeerimine

Kuigi vaateakna ühikud on üldiselt jõudsad, võib nende liigne kasutamine potentsiaalselt mõjutada lehe renderdamise kiirust. Jõudluse optimeerimiseks vältige vaateakna ühikute kasutamist igal üksikul elemendil oma lehel. Selle asemel keskenduge nende strateegilisele kasutamisele peamiste küljenduskomponentide ja tüpograafia jaoks. Samuti minimeerige kordade arvu, mil arvutate JavaScriptis vaateakna ühiku väärtusi ümber.

Näited erinevatest riikidest ja kultuuridest

Vaateakna ühikute ilu seisneb selles, et need aitavad luua ühtlase kasutajakogemuse erinevates paikades. Uurime, kuidas saab vaateakna ühikuid rakendada kultuurilisi kaalutlusi arvestades:

Kokkuvõte

CSS-i vaateakna ühikud on asendamatu tööriist tõeliselt reageerivate ja skaleeritavate veebidisainide loomiseks, mis kohanduvad sujuvalt iga seadmega. Mõistes vw, vh, vmin, vmax, vi ja vb funktsionaalsust ning järgides parimaid tavasid, saate avada vaateakna ühikute täieliku potentsiaali ning luua visuaalselt atraktiivseid ja kasutajasõbralikke veebisaite, mis pakuvad ühtlast kogemust kõigil platvormidel. Võtke need ühikud omaks, et luua veebikogemusi, mis on globaalselt ligipääsetavad ja esteetiliselt meeldivad, olenemata kasutaja seadmest või kultuurilisest taustast.

Pidage meeles, et testige põhjalikult erinevates brauserites ja seadmetes ning seadke alati esikohale ligipääsetavus, et tagada oma disainide kaasavus ja kasutatavus kõigile.