inset
Hotel v CSS je okrajšava za štiri notranjimi lastnostmi, top
, right
, bottom
in left
v eni izjavi. Tako kot štiri posamezne lastnosti same inset
ne vpliva na nepozicionirane (statične) elemente. Z drugimi besedami, element mora prijaviti izrecno position
vrednost, preden lahko vstavljene lastnosti začnejo veljati.
.box ( inset: 10px 20px 30px 40px; position: relative; )
inset
je prvotno opredeljen v specifikaciji CSS Logical Properties and Values Level 1, ki je v urednikovem osnutku od 20. aprila 2020.
Sintaksa
Kot ste morda zbrali iz zgornjega primera, inset
sledi isti sintaksi več vrednosti padding
in margin
. To pomeni, da sprejema več kot štirih vrednosti (jo razglaša za protidobave za top
, right
, bottom
in left
) in več kot samo eno vrednost (naj ugotovi enakopravni nadomestilo za vse štiri lastnosti). In, kot padding
in margin
, vrednosti tečejo v smeri urinega kazalca, začenši z 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 */ )
Pred inset
tem bi morali vsako inset
podlastnost prijaviti posebej, takole:
.box ( position: absolute; top: 0; right: 0; bottom: 0; left: 0; )
Zdaj lahko to preprosto spremenimo v eno vrstico CSS:
.box ( position: absolute; inset: 0; /* ? */ )
Vrednote
inset
Lastnina sprejema številčne vrednosti, tako kot zgoraj, desno, spodaj in levo. Te vrednosti lahko katera koli veljavna dolžina CSS, kot so px
, em
, rem
in %
, med drugim.
Pogovorimo se o logičnih lastnostih
Tukaj bomo samo opraskali površino logičnih lastnosti, saj je resnična pozornost usmerjena na inset
z njimi povezane pod-lastnosti. Poglobite se v to temo v tem članku Smashing Magazine Rachel Andrew.
Obstaja več inset
sub-lastnosti kot top
, right
, bottom
in left
vendar, da bi jih razumeli, da je vredno spoznavanje logičnih lastnosti in vrednosti.
Vsebina je lahko prikazana v različnih smereh (tj. Načini pisanja), vključno z levo-desno, od desne proti levi, od zgoraj navzdol in od spodaj navzgor. Ko govorimo o "logičnih" konceptih, v resnici mislimo na izhodišče, ki temelji na smeri pisanja vsebine.
Predstavljajte si, da gradite spletno mesto, ki mora podpirati jezike od leve proti desni (LTR), kot sta angleščina in španščina, in jezike od desne proti levi (RTL), kot sta perzijščina ali arabščina. Recimo, da želite dodati rob med ikono in besedilom vrstice ob njej.
Seveda lahko posežete po margin-right
znamki, ki podpira LTR, nato pa dodate še en nabor pravil, ki odstrani to mejo in jo nadomesti z margin-left
RTL:
.icon ( margin-right: 1em; )
/* or .icon:dir(rtl) */ (dir="rtl") .icon ( margin-right: 0; margin-left: 1em; )
To je majhen del strani. Zdaj pa si predstavljajte, kako na ta način zgradite veliko spletno mesto - to je veliko dela! Toda logične lastnosti naredijo trenutek tako, da za nas upoštevajo način pisanja. Na primer, lahko na koncu elementa dodamo rob , kjer koli se to zgodi:
.icon ( margin-inline-end: 1em; )
To je tisto, kar mislimo, ko se sklicujemo na logične lastnosti - so bolj odvisne od načina pisanja kot od fizične smeri. Oglejte si, kako je z logičnimi lastnostmi veliko bolj logično delati?
Vstavi logične lastnosti
Torej, če veste, kaj zdaj veste o logičnih lastnostih, tukaj so štiri dodatne vstavljene pod-lastnosti:
Logična lastnost | Ekvivalent vodoravnega pretoka | Kaj naredi |
---|---|---|
inset-block-start | top | Določa odmik začetnega roba v smeri, ki je pravokotna na smer pisanja. |
inset-block-end | bottom | Določa odmik končnega roba v smeri, ki je pravokotna na smer pisanja. |
inset-inline-start | left | Določi odmik začetnega roba v smeri pisanja, ki se preslika v fizični odmik, odvisno od načina pisanja, smeri in usmeritve besedila elementa. |
inset-inline-end | right | Določa odmik končnega roba v smeri pisanja. |
Te štiri podlastnosti lahko celo združimo v dve dodatni okrajšavi:
Logična lastnost | Okrajšava za | Kaj naredi |
---|---|---|
inset-inline | inset-inline-start inset-inline-end | Sprejema eno vrednost za nastavitev obeh inset-inline-start in inset-inline-end .Sprejema tudi dve vrednosti, pri čemer prva določa, inset-inline-start druga pa inset-inline-end . |
inset-block | inset-block-start inset-block-end | Sprejema eno vrednost za nastavitev inset-block-star t in inset-block-end .Sprejema tudi dve vrednosti, pri čemer prva določa, inset-block-start druga pa inset-block-end . |
Demo
Spremenite način pisanja in vrednosti lastnosti vstavka, da boste bolje razumeli, kako delujejo:
Pozor: inset
Lastnost ni logična
Čeprav inset
je del specifikacije logičnih lastnosti in vrednosti, ne opredeljuje logičnih blokov ali vrstnih odmikov. Namesto tega določa fizične odmike, ne glede na način pisanja, smeri in usmerjenosti besedila elementa. Z drugimi besedami, inset
je le okrajšava za top
, right
, bottom
in left
.
Na GitHubu je nekaj razprav glede uporabe nekaterih ključnih besed, da bi lahko to lastnost uporabili tudi na logičen način.
Torej, ali še vedno uporabljamo fizične odmike? Predstavljajte si, da želite v zgornjem in levem kotu strani pritrditi značko ali logotip in ne glede na jezik želite, da je tam. V tem primeru ne morete uporabiti logičnih odmikov in se boste morali namesto tega zateči k fizičnim lastnostim.
Podpora za brskalnik
Podpora inset
nepremičnini je še v začetni fazi. Od tega pisanja Caniuse ocenjuje svetovno podporo na le 3,79%.
Namizje
internet Explorer | Rob | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Ne | Ne | 66+ | Ne | Ne | Ne |
Mobilni
iOS Safari | Opera Mini | Brskalnik Android | Chrome Android | Firefox Android |
---|---|---|---|---|
Ne | Ne | 68 | Ne | Ne |
Več informacij
- Logične lastnosti in vrednosti CSS 1. stopnja (specifikacija, uredniški osnutek)
- Razumevanje logičnih lastnosti in vrednosti (Smashing Magazine)
- Logične lastnosti CSS (triki CSS)