inset
Nekretnina u CSS je skraćenica za četiri leže unutar svojstava top
, right
, bottom
a left
na jednoj deklaraciji. Baš kao i četiri pojedinačna svojstva, inset
nema utjecaja na nepozicionirane (statičke) elemente. Drugim riječima, element mora deklarirati eksplicitnu position
vrijednost prije nego što umetnuta svojstva stupe na snagu.
.box ( inset: 10px 20px 30px 40px; position: relative; )
inset
inicijalno je definiran u specifikaciji CSS logičkih svojstava i vrijednosti 1, koja se nalazi u Nacrtu urednika od 20. travnja 2020.
Sintaksa
Kao što ste možda skupili iz gornjeg primjera, inset
slijedi istu višeznačnu sintaksu padding
i margin
. To znači da prihvaća čak četiri vrijednosti (proglasiti offseta za top
, right
, bottom
a left
) i što manje jedne vrijednosti (proglasiti jednakim umanjen za sva četiri svojstva). I, poput padding
i margin
, vrijednosti teku u smjeru kazaljke na satu, počevši od top
.
.element ( inset: 1em 2em 3em 0; /* top right bottom left */ inset: 10% 5% -10%; /* top left/right bottom */ inset: 0 10px; /* top/bottom left/right */ inset: 20px; /* all edges = 20px */ )
Prije inset
bismo morali inset
zasebno prijaviti svaku podvlasnost, ovako:
.box ( position: absolute; top: 0; right: 0; bottom: 0; left: 0; )
Sada to možemo jednostavno dodati na jedan redak CSS-a:
.box ( position: absolute; inset: 0; /* ? */ )
Vrijednosti
inset
Nekretnine prihvaća brojčane vrijednosti kao i vrh, desni i donji i lijevo. Te vrijednosti mogu biti bilo koji valjani duljina CSS, kao što su px
, em
, rem
i %
, među ostalima.
Razgovarajmo o logičkim svojstvima
Ovdje ćemo samo ogrebati površinu logičkih svojstava, jer je stvarni fokus na inset
srodnim svojstvima. Temeljito zaronite u temu u ovom članku Smashing Magazine Rachel Andrew.
Postoji više inset
pod-svojstva nego top
, right
, bottom
i left
već, kako bi ih se razumjelo, to je vrijedno upoznavanja s logičkim svojstvima i vrijednostima.
Sadržaj se može prikazati u različitim smjerovima (tj. Načinima pisanja), uključujući slijeva udesno, zdesna ulijevo, od vrha do dna i od dna do vrha. Kada govorimo o "logičkim" konceptima, stvarno se pozivamo na polazište temeljeno na smjeru pisanja sadržaja.
Zamislite da gradite web stranicu koja mora podržavati jezike slijeva udesno (LTR), poput engleskog i španjolskog, i jezike zdesna ulijevo (RTL), poput perzijskog ili arapskog. Recimo da želite dodati marginu između ikone i teksta retka pored nje.
Naravno, možete posegnuti za margin-right
entitetom koji podržava LTR, a zatim dodati još jedan skup pravila koji uklanja tu marginu i zamjenjuje je margin-left
za RTL:
.icon ( margin-right: 1em; )
/* or .icon:dir(rtl) */ (dir="rtl") .icon ( margin-right: 0; margin-left: 1em; )
Ovo je mali dio stranice. Sad zamislite da na ovaj način napravite veliku web stranicu - to je puno posla! Ali logička svojstva čine ga brzim uzimajući u obzir način pisanja. Na primjer, možemo dodati marginu na kraj elementa, ma gdje se to dogodilo:
.icon ( margin-inline-end: 1em; )
To je ono na što mislimo kada se referiramo na logička svojstva - ona su u odnosu na način pisanja, a ne na fizički smjer. Pogledajte kako je s logičkim svojstvima puno logičnije raditi?
Umetni logička svojstva
Dakle, znajući što sada znate o logičkim svojstvima, evo četiri dodatna umetnuta pod-svojstva:
Logičko svojstvo | Ekvivalent vodoravnog protoka | Što to radi |
---|---|---|
inset-block-start | top | Određuje pomak za početni rub u smjeru koji je okomit na smjer pisanja. |
inset-block-end | bottom | Određuje pomak za krajnji rub u smjeru koji je okomit na smjer pisanja. |
inset-inline-start | left | Određuje pomak za početni rub u smjeru pisanja, koji se preslikava na fizički pomak, ovisno o načinu pisanja, smjeru i orijentaciji teksta elementa. |
inset-inline-end | right | Određuje pomak za krajnji rub u smjeru pisanja. |
Ta četiri podvlasnika možemo čak grupirati u dva dodatna stenografska svojstva:
Logičko svojstvo | Stenografija za | Što to radi |
---|---|---|
inset-inline | inset-inline-start inset-inline-end | Prihvaća jednu vrijednost za postavljanje inset-inline-start i inset-inline-end .Također prihvaća dvije vrijednosti, gdje prva navodi, inset-inline-start a druga određuje inset-inline-end . |
inset-block | inset-block-start inset-block-end | Prihvaća jednu vrijednost za postavljanje i inset-block-star t i inset-block-end .Također prihvaća dvije vrijednosti, gdje prva navodi, inset-block-start a druga određuje inset-block-end . |
Demo
Promijenite način pisanja i vrijednosti svojstava umetka kako biste dobili bolju ideju o njihovom radu:
Pažnja: inset
svojstvo nije logično
Iako inset
je dio specifikacije logičkih svojstava i vrijednosti, on ne definira logički blok ili inline pomake. Umjesto toga, definira fizičke pomake, bez obzira na način pisanja, smjera i orijentacije teksta elementa. Drugim riječima, inset
samo je skraćenica za top
, right
, bottom
i left
.
Ovdje se na GitHubu raspravlja o upotrebi nekih ključnih riječi da bi se i ovo svojstvo moglo koristiti na logičan način.
Pa, koristimo li još uvijek fizičke pomake? Zamislite da želite značku ili logotip pričvršćeni za gornji i lijevi kut stranice i, bez obzira na jezik, želite da bude tamo. U tom slučaju ne možete koristiti logičke pomake i umjesto toga morat ćete pribjeći fizičkim svojstvima.
Podrška preglednika
Podrška za inset
imovinu još je u ranoj fazi. Od ovog pisanja, caniuse procjenjuje globalnu potporu na samo 3,79%.
Radna površina
Internet Explorer | Rub | Firefox | Krom | Safari | Opera |
---|---|---|---|---|---|
Ne | Ne | 66+ | Ne | Ne | Ne |
Mobilni
iOS Safari | Opera Mini | Android preglednik | Chrome Android | Firefox Android |
---|---|---|---|---|
Ne | Ne | 68 | Ne | Ne |
Više informacija
- CSS logička svojstva i vrijednosti razina 1 (specifikacija, urednikov nacrt)
- Razumijevanje logičkih svojstava i vrijednosti (Smashing Magazine)
- CSS logička svojstva (CSS-trikovi)