inset
Omaisuus CSS on lyhenteenä neljän upotettavat ominaisuuksia top
, right
, bottom
ja left
yhdessä ilmoituksessa. Aivan kuten neljä yksittäistä ominaisuutta itse, inset
sillä ei ole vaikutusta sijoittumattomiin (staattisiin) elementteihin. Toisin sanoen elementin on ilmoitettava eksplisiittinen position
arvo ennen kuin lisäysominaisuudet voivat tulla voimaan.
.box ( inset: 10px 20px 30px 40px; position: relative; )
inset
on alun perin määritelty CSS: n loogisten ominaisuuksien ja arvojen tason 1 määrittelyssä, joka on Editorin luonnoksessa 20. huhtikuuta 2020.
Syntaksi
Kuten ehkä olette kerätty Edellisessä esimerkissä inset
noudattaa samaa moniarvoisesta syntaksia padding
ja margin
. Se tarkoittaa, että hyväksyy peräti neljä arvoa (julistaa vaihesiirrot top
, right
, bottom
ja left
) ja niin vähän kuin yksi arvo (julistaa Equal Offset kaikkien neljän ominaisuudet). Ja kuten padding
ja margin
, arvot virtaavat myötäpäivään alkaen 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 */ )
Aikaisemmin inset
meidän on ilmoitettava kukin inset
osaomaisuus erikseen seuraavasti:
.box ( position: absolute; top: 0; right: 0; bottom: 0; left: 0; )
Nyt voimme yksinkertaisesti tehdä sen yhdelle CSS-riville:
.box ( position: absolute; inset: 0; /* ? */ )
Arvot
inset
Omaisuuden hyväksyy numeerisia arvoja kuten ylhäällä, oikealla, alhaalla ja vasemmalla. Nuo arvot voivat olla mitä tahansa validi CSS pituus, kuten px
, em
, rem
ja %
muun muassa.
Puhutaan loogisista ominaisuuksista
Aion vain naarmuttaa loogisten ominaisuuksien pintaa täällä, koska todellinen painopiste on inset
ja siihen liittyvät aliominaisuudet. Tutustu perusteelliseen aiheeseen tässä Rachel Andrewn Smashing Magazine -artikkelissa.
On enemmän inset
osa-ominaisuuksia kuin top
, right
, bottom
ja left
mutta, jotta ymmärtää niitä, se on tutustumisen arvoinen loogisia ominaisuuksia ja arvoja.
Sisältöä voidaan näyttää eri suuntiin (ts. Kirjoitustilat), mukaan lukien vasemmalta oikealle, oikealta vasemmalle, ylhäältä alas ja alhaalta ylös. Kun puhumme "loogisista" käsitteistä, viittaamme todella lähtökohtaan sisällön kirjoittamissuunnan perusteella.
Kuvittele, että rakennat verkkosivustoa, jonka on tuettava sekä vasemmalta oikealle (LTR) -kieliä, kuten englanti ja espanja, että oikealta vasemmalle (RTL), kuten persia tai arabia. Oletetaan, että haluat lisätä marginaalin kuvakkeen ja viereisen tekstin väliin.


Luonnollisesti saatat margin-right
pyrkiä omaisuuteen tukemaan LTR: ää ja lisätä sitten toisen sääntöjoukon, joka poistaa kyseisen marginaalin ja korvaa sen margin-left
RTL: llä:
.icon ( margin-right: 1em; )
/* or .icon:dir(rtl) */ (dir="rtl") .icon ( margin-right: 0; margin-left: 1em; )
Tämä on pieni osa sivua. Kuvittele nyt, että rakennat suuren verkkosivuston tällä tavalla - se on paljon työtä! Mutta loogiset ominaisuudet tekevät siitä hetken, kun otetaan huomioon kirjoitustila meille. Esimerkiksi voimme lisätä marginaalin elementin loppuun , missä se sattuu olemaan:
.icon ( margin-inline-end: 1em; )
Tätä tarkoitamme viitatessamme loogisiin ominaisuuksiin - ne ovat suhteessa kirjoitustilaan eikä fyysiseen suuntaan. Katso kuinka loogisten ominaisuuksien kanssa on paljon loogisempaa työskennellä?
Syötä loogiset ominaisuudet
Joten, tietäen mitä tiedät nyt loogisista ominaisuuksista, tässä on neljä uutta lisäominaisuutta:
Looginen ominaisuus | Vaakasuuntainen virtausekvivalentti | Mitä se tekee |
---|---|---|
inset-block-start | top | Määrittää alkureunan siirtymän kohtisuorassa kirjoitussuuntaan nähden. |
inset-block-end | bottom | Määrittää loppureunan siirtymän kohtisuorassa kirjoitussuuntaan nähden. |
inset-inline-start | left | Määrittää aloitusreunan siirtymän kirjoitussuunnassa, joka kartoittaa fyysisen siirtymän elementin kirjoitustilan, suunnan ja tekstin suunnan mukaan. |
inset-inline-end | right | Määrittää loppureunan siirtymän kirjoitussuunnassa. |
Voimme jopa ryhmitellä nämä neljä alaominaisuutta kahteen muuhun lyhytominaisuuteen:
Looginen ominaisuus | Lyhyesti | Mitä se tekee |
---|---|---|
inset-inline | inset-inline-start inset-inline-end | Hyväksyy yksi arvo asettaa sekä inset-inline-start ja inset-inline-end .Hyväksyy myös kaksi arvoa, joista ensimmäinen määrittelee inset-inline-start ja toinen määrittelee inset-inline-end . |
inset-block | inset-block-start inset-block-end | Hyväksyy yhden arvon asettaa sekä inset-block-star t että inset-block-end .Hyväksyy myös kaksi arvoa, joista ensimmäinen määrittelee inset-block-start ja toinen määrittelee inset-block-end . |
Demo
Muuta lisäysominaisuuksien kirjoitustilaa ja arvoja saadaksesi paremman käsityksen niiden toiminnasta:
Huomioitavaa: inset
Ominaisuus ei ole looginen
Vaikka se inset
on osa loogisten ominaisuuksien ja arvojen määrittelyä, se ei määritä loogisia lohkoja tai sisäisiä siirtymiä. Sen sijaan se määrittelee fyysiset siirtymät elementin kirjoitustilasta, suunnasta ja tekstin suunnasta riippumatta. Toisin sanoen, inset
on vain lyhenteenä top
, right
, bottom
ja left
.
GitHubissa on jonkin verran keskustelua joidenkin avainsanojen käytöstä, jotta myös tätä ominaisuutta voidaan käyttää loogisella tavalla.
Joten, käytämmekö edelleen fyysisiä siirtoja? Kuvittele, että haluat merkin tai logon kiinnitettäväksi sivusi ylä- ja vasempaan kulmaan ja kielestä riippumatta, että haluat sen olevan siellä. Siinä tapauksessa et voi käyttää loogisia siirtymiä ja sinun on sen sijaan käytettävä fyysisiä ominaisuuksia.
Selaimen tuki
Tuki inset
omaisuus on vielä alkuvaiheessa. Tämän kirjoituksen jälkeen caniuse arvioi maailmanlaajuisen tuen olevan vain 3,79%.
Työpöytä
Internet Explorer | Reuna | Firefox | Kromi | Safari | Ooppera |
---|---|---|---|---|---|
Ei | Ei | 66+ | Ei | Ei | Ei |
Matkapuhelin
iOS Safari | ooppera Mini | Android-selain | Chrome Android | Firefox Android |
---|---|---|---|---|
Ei | Ei | 68 | Ei | Ei |
Lisää tietoa
- CSS: n loogisten ominaisuuksien ja arvojen taso 1 (määrittely, toimittajan luonnos)
- Loogisten ominaisuuksien ja arvojen ymmärtäminen (Smashing Magazine)
- CSS: n loogiset ominaisuudet (CSS-temput)