Raziščite CSS logične lastnosti radija obrobe za ustvarjanje odzivnih dizajnov, ki se zavedajo načina pisanja. Naučite se jih uporabljati s primeri za mednarodna spletna mesta.
CSS logični radij obrobe: Prilagajanje načinom pisanja za globalno oblikovanje
V razvijajočem se svetu spletnega oblikovanja je ključnega pomena ustvarjanje postavitev, ki se gladko prilagajajo različnim jezikom, kulturam in načinom pisanja. Tradicionalne CSS lastnosti se pogosto zanašajo na fizične dimenzije (zgoraj, desno, spodaj, levo), kar lahko postane problematično pri jezikih, ki se berejo od desne proti levi (RTL) ali od zgoraj navzdol.
CSS logične lastnosti in vrednosti (CSS Logical Properties and Values) ponujajo rešitev z uvedbo konceptov, ki temeljijo na toku in smeri, namesto na fizičnih robovih. Med temi zmogljivimi orodji družina border-radius
pridobi novo prožnost s svojimi logičnimi ustrezniki. Ta članek se poglablja v svet CSS logičnih lastnosti radija obrobe, pojasnjuje njihovo delovanje in prikazuje njihovo vrednost pri ustvarjanju resnično globalnih spletnih izkušenj.
Razumevanje potrebe po logičnih lastnostih
Zgodovinsko gledano so bile CSS lastnosti vezane na fizične dimenzije. Na primer, margin-left
vedno doda prostor na levo stran elementa. To dobro deluje pri jezikih, ki se pišejo od leve proti desni (LTR), kot je angleščina, vendar postane manj intuitivno pri jezikih RTL, kot sta arabščina ali hebrejščina, kjer je “leva” stran dejansko vizualno desna.
Predstavljajte si spletno stran s stransko vrstico, postavljeno na levo v jezikih LTR. Uporaba margin-left
in float: left
deluje odlično. Ko pa je spletna stran prevedena v arabščino, bi se stranska vrstica idealno morala pojaviti na desni. Ročno preklapljanje margin-left
na margin-right
in float: right
dodaja zapletenost in povečuje stroške vzdrževanja.
Logične lastnosti to rešujejo z uporabo konceptov, kot sta 'začetek' (start) in 'konec' (end), ki se samodejno prilagajata glede na način pisanja. To drastično poenostavi ustvarjanje postavitev, ki delujejo pravilno v različnih jezikih in pisavah.
Predstavitev CSS logičnih lastnosti radija obrobe
Tradicionalna lastnost border-radius
omogoča zaokroževanje vogalov elementa. Vendar pa se zanaša na fizične smeri, kot so border-top-left-radius
, border-top-right-radius
, border-bottom-right-radius
in border-bottom-left-radius
. Specifikacija CSS Logical Properties and Values uvaja nove, načinu pisanja prilagojene lastnosti, ki zagotavljajo večjo prožnost in prilagodljivost:
border-start-start-radius
: Določa radij obrobe za začetno-začetni vogal elementa.border-start-end-radius
: Določa radij obrobe za začetno-končni vogal elementa.border-end-start-radius
: Določa radij obrobe za končno-začetni vogal elementa.border-end-end-radius
: Določa radij obrobe za končno-končni vogal elementa.
Tukaj sta 'začetek' (start) in 'konec' (end) relativna glede na način pisanja in smer vsebine. V jeziku LTR 'začetek' ustreza levi, 'konec' pa desni. V jeziku RTL 'začetek' ustreza desni, 'konec' pa levi. Podobno pri vertikalnih načinih pisanja 'začetek' ustreza vrhu, 'konec' pa dnu.
Praktični primeri in primeri uporabe
Poglejmo nekaj praktičnih primerov, ki ponazarjajo, kako lahko te logične lastnosti radija obrobe uporabimo za ustvarjanje odzivnih in načinu pisanja prilagojenih dizajnov.
Primer 1: Zaokroženi gumbi, ki se prilagajajo načinu pisanja
Poglejmo gumb z zaokroženimi vogali. Želimo, da se zaokrožitev pojavi na vodilnih in sledilnih robovih, ne glede na način pisanja.
HTML:
<button class="button">Klikni me</button>
CSS:
.button {
border-start-start-radius: 10px;
border-start-end-radius: 10px;
border-end-start-radius: 10px;
border-end-end-radius: 10px;
/* Ali pa z uporabo skrajšane oblike: */
border-radius: 10px;
}
[dir="rtl"] .button {
/* Spremembe niso potrebne! Brskalnik poskrbi za prilagoditev načinu pisanja */
}
V tem primeru bodo, ne glede na to, ali je stran LTR ali RTL, zaokroženi zgornji levi in zgornji desni (pri LTR) ali zgornji desni in zgornji levi (pri RTL) vogali. Ni potrebe po pisanju ločenih CSS pravil za različne načine pisanja. Brskalnik pametno uporabi sloge na podlagi atributa dir
.
Primer 2: Oblački za klepet z dinamičnim postavljanjem repka
Oblački za klepet so pogost element uporabniškega vmesnika. Običajno je rep oblačka usmerjen proti pošiljatelju. Z uporabo logičnih lastnosti lahko enostavno prilagodimo videz oblačka glede na to, ali je sporočilo od uporabnika ali drugega stika, ter upoštevamo način pisanja.
HTML:
<div class="chat-bubble user">Živjo!</div>
<div class="chat-bubble other">Pozdravljen!</div>
CSS:
.chat-bubble {
background-color: #eee;
padding: 10px;
margin-bottom: 10px;
border-radius: 10px;
}
.chat-bubble.user {
border-start-start-radius: 0; /* Odstrani radij na zgornjem levem (LTR) ali zgornjem desnem (RTL) vogalu */
}
.chat-bubble.other {
border-start-end-radius: 0; /* Odstrani radij na zgornjem desnem (LTR) ali zgornjem levem (RTL) vogalu */
}
/* Pri jezikih RTL brskalnik samodejno zrcali začetek/konec */
/* Dodaten CSS ni potreben */
V tem scenariju razred .user
odstrani radij obrobe na 'začetno-začetnem' vogalu, kar dejansko ustvari rep. Pri jezikih LTR je to zgornji levi vogal. Pri jezikih RTL brskalnik samodejno interpretira 'začetno-začetni' kot zgornji desni vogal, s čimer zagotavlja, da je rep vedno pravilno postavljen brez potrebe po ločenih stilih, specifičnih za RTL.
Primer 3: Kartice s poudarjanjem vogalov
Recimo, da želimo poudariti določen vogal kartice, da označimo predstavljen izdelek. Uporaba logičnih lastnosti to naredi izjemno prilagodljivo.
HTML:
<div class="card featured">
<h2>Naslov izdelka</h2>
<p>Opis izdelka.</p>
</div>
CSS:
.card {
border: 1px solid #ccc;
padding: 20px;
border-radius: 10px;
}
.card.featured {
border-end-end-radius: 0; /* Odstrani radij na spodnjem desnem (LTR) ali spodnjem levem (RTL) vogalu */
border-top: 3px solid red;
border-start-start-radius:0; /*Odstrani radij zgoraj levo*/
}
Razred .featured
odstrani radij z 'končno-končnega' vogala, kar bo spodnji desni pri LTR in spodnji levi pri RTL. Ta učinek bo brskalnik samodejno zrcalil za jezike RTL.
Prednosti uporabe logičnih lastnosti radija obrobe
- Poenostavljena internacionalizacija: Pišite manj CSS-a in se izognite zapletenosti upravljanja ločenih stilskih datotek za različne načine pisanja.
- Izboljšana odzivnost: Ustvarite postavitve, ki se bolj gladko prilagajajo različnim velikostim zaslonov in orientacijam.
- Lažje vzdrževanje: Logične lastnosti vodijo do čistejše, bolj jedrnate kode, ki jo je lažje razumeti in vzdrževati.
- Izboljšana dostopnost: S pravilnim upravljanjem postavitve in smeri ustvarite bolj vključujočo izkušnjo za uporabnike vseh jezikov in kultur.
- Pripravljenost na prihodnost: Ker se CSS nenehno razvija, uporaba logičnih lastnosti zagotavlja, da vaša koda ostane relevantna in prilagodljiva.
Podpora brskalnikov in polyfilli
Večina sodobnih brskalnikov ponuja odlično podporo za CSS logične lastnosti in vrednosti, vključno z logičnimi lastnostmi radija obrobe. Vendar pa lahko za starejše brskalnike, ki nimajo izvorne podpore, uporabite polyfille za zagotavljanje združljivosti. Autoprefixer lahko pogosto opravi potrebne transformacije, da zagotovi delovanje vaše kode v širšem naboru brskalnikov.
Vedno je dobra praksa preveriti trenutno podporo brskalnikov na virih, kot je Can I use, preden te lastnosti implementirate v produkcijsko okolje.
Najboljše prakse in priporočila
- Dosledna uporaba logičnih lastnosti: Ko začnete uporabljati logične lastnosti, jih poskusite uporabljati po vsem projektu za doslednost. Mešanje logičnih in fizičnih lastnosti lahko vodi do zmede in nepričakovanih rezultatov.
- Temeljito testiranje: Testirajte svojo spletno stran v različnih načinih pisanja (LTR, RTL in potencialno vertikalno), da zagotovite pravilno prilagajanje postavitve.
- Upoštevajte atribut `direction`: Atribut
direction
(dir="ltr"
alidir="rtl"
) je ključen za označevanje načina pisanja vaše vsebine. Zagotovite, da je pravilno nastavljen na elementu<html>
ali na določenih delih vaše strani. - Uporaba z drugimi logičnimi lastnostmi: Združite logične lastnosti radija obrobe z drugimi logičnimi lastnostmi, kot so
margin-inline-start
,padding-block-end
ininset-inline-start
, za postavitve, ki se resnično zavedajo načina pisanja. - Testiranje dostopnosti: Zagotovite, da so vaše postavitve dostopne z uporabo bralnikov zaslona in drugih podpornih tehnologij. Pravilna smer pisanja je ključna za uporabnike, ki se zanašajo na ta orodja.
Napredne tehnike in skrajšane oblike
Tako kot pri standardni lastnosti `border-radius`, lahko uporabite skrajšano obliko za nastavitev več logičnih radijev obrobe hkrati:
border-radius: border-start-start-radius border-start-end-radius border-end-end-radius border-end-start-radius;
Uporabite lahko tudi eno, dve, tri ali štiri vrednosti, tako kot pri standardni lastnosti `border-radius`. Interpretacija teh vrednosti sledi istim pravilom:
- Ena vrednost: Vsi štirje vogali imajo enak radij.
- Dve vrednosti: Prva vrednost velja za začetno-začetni in končno-končni vogal, druga pa za začetno-končni in končno-začetni vogal.
- Tri vrednosti: Prva vrednost velja za začetno-začetni vogal, druga za začetno-končni in končno-začetni vogal, tretja pa za končno-končni vogal.
- Štiri vrednosti: Vsaka vrednost velja za določen vogal v vrstnem redu: začetno-začetni, začetno-končni, končno-končni, končno-začetni.
Na primer:
border-radius: 10px; /* Vsi vogali imajo radij 10px */
border-radius: 10px 20px; /* začetno-začetni in končno-končni: 10px, začetno-končni in končno-začetni: 20px */
border-radius: 10px 20px 30px; /* začetno-začetni: 10px, začetno-končni in končno-začetni: 20px, končno-končni: 30px */
border-radius: 10px 20px 30px 40px; /* začetno-začetni: 10px, začetno-končni: 20px, končno-končni: 30px, končno-začetni: 40px */
Zaključek: Sprejmite logične lastnosti za globalni splet
CSS logične lastnosti in vrednosti, vključno z logičnimi lastnostmi radija obrobe, so bistvena orodja za ustvarjanje resnično globalnih in dostopnih spletnih izkušenj. Z razumevanjem in uporabo teh lastnosti lahko znatno poenostavite proces prilagajanja svojih dizajnov različnim jezikom, kulturam in načinom pisanja.
Ker splet postaja vse bolj globalen, je ključnega pomena, da sprejmemo najboljše prakse, ki zagotavljajo vključevanje in dostopnost za vse uporabnike. Sprejmite logične lastnosti, temeljito testirajte in ustvarjajte spletne strani, ki brezhibno delujejo v različnih jezikih in pisavah.
Z opuščanjem fizičnih dimenzij in sprejemanjem logičnih konceptov boste ustvarili lažje vzdrževane, odzivne in uporabniku prijazne spletne strani, ki so namenjene raznolikemu globalnemu občinstvu.
Dodatni viri
- MDN Web Docs: CSS logične lastnosti in vrednosti
- W3C CSS logične lastnosti in vrednosti stopnja 1
- Can I use (za preverjanje podpore brskalnikov)