contain
Nekretnina u CSS ukazuje na preglednik koji element i njegovi potomci smatraju neovisan od stabla dokumenta što je više moguće. To potencijalno donosi prednosti izvedbe s izračunima u izgledu, stilu, boji, veličini ili bilo kojoj kombinaciji za ograničeno područje DOM-a, a ne za cijelu stranicu.
Svojstvo ima pet standardnih vrijednosti i dvije stenografske vrijednosti koje kombiniraju varijacije standardnih vrijednosti. Svaka vrijednost ima neke jedinstvene i zajedničke koristi, ovisno o kontekstu elementa koji ih primjenjuje.
Tipična upotreba ovog svojstva je element koji sadrži sadržaj neke vrste. Razmislite o widgetu koji generira dolazne podatke koji mijenjaju izgled i vizuale potomaka elementa. Sljedeći element koji treba razmotriti je onaj koji sadrži rezultate podataka trećih strana, kao što je natpisni oglas, gdje nam blagodati ograničavanja daju prednost određivanju prioriteta slikanja određenog sadržaja, načinu postupanja s veličinom primljenog sadržaja ili određivanju da li sadržaj čak trebao biti vidljiv. S druge strane, uglavnom statično mjesto, dobit će malo koristi osim prvog izgleda i boje na zaslonu pri učitavanju stranice.
Sintaksa
div ( contain: none | strict | content | ( size || layout || style || paint ); )
div ( contain: none; /* no containment on element */ contain: layout; /* influences how element relates to other elements in the document */ contain: paint; /* influences how element is painted to screen */ contain: size; /* influences how element affects size calculations for the page */ contain: style; /* is considered at-risk for removal from spec */
contain: content; /* combines layout and paint */ contain: strict; /* combines layout, paint, and size */ )
Vrijednosti svojstava
Izgled
Vrijednost layout
sadržavanja obavještava preglednik da niti jedan od potomaka elementa ne utječe na druge elemente na stranici, niti ti drugi elementi imaju bilo kakav učinak na potomke sadržanog elementa. To omogućuje pregledniku da potencijalno smanji broj izračuna koji su potrebni prilikom izrade izgleda stranice
Druga je prednost što ako je sadržani element izvan zaslona ili je na neki način zaklonjen, tada preglednik može odgoditi ili pomaknuti povezane izračune na niži prioritet. Primjer za to je sadržani element koji se ne vidi na kraju blok elementa i vidljiv je početak tog blok elementa.
Element sa sadržajem layout
postaje okvir za sadržaje za pozicionirane potomke - poput elemenata s apsolutnim pozicioniranjem. Element prima novi kontekst slaganja u odnosu na stranicu i z-inde
može se koristiti svojstvo x. Iako se usmjerena svojstva, poput top
ili left
, ne primjenjuju.
Iako potomci sadržanog elementa možda neće utjecati na druge elemente na stranici, i dalje mogu utjecati na njihov sadržani element pretka. Na primjer, potomak može uzrokovati da se sadržani element promijeni u veličini kao reakcija na promjene. U tom slučaju, sadržani element još uvijek može utjecati na druge elemente na stranici, ali potomci i dalje neće biti uključeni u te izračune.
Sljedeća demonstracija pruža jednostavno objašnjenje što se događa kada layout
se primijeni ograničenje. Klikom na svaki od gornjih okvira primjenjuje se sadržaj i crvene strelice će promijeniti izgled. Izgled crvenih strelica sugerira utječe li potomstvo okvira na ostale okvire na stranici tijekom izračuna izgleda.
Boja
Vrijednost paint
sadržavanja obavještava preglednik da niti jedan od potomaka elementa neće biti obojan izvan okvira za rub elementa. Ako je pozicionirani element pozicioniran tako da ima dio svog ograničavajućeg okvira koji će ga presjeći sadržani element, border-box
tada taj dio neće biti obojan. Ako je potomak elementa potpuno postavljen izvan sadržanog elementa, border-box
on uopće nije obojan. To je slično primjeni overflow: hidden;
na element, ali bez prednosti preskakanja ili smanjenja potrebnih izračuna.
Još jedna prednost je ta što ako sadržani element na neki način nije vidljiv u okviru za prikaz, tada može preskočiti potomke elementa prilikom izvođenja proračuna. Primjer za to je element koji se nalazi sa stranice lijevo od okvira za prikaz. Ako sadržani element nije vidljiv, to je jamstvo da njegov sadržaj neće biti vidljiv. Stoga nisu obvezni sudjelovati u izračunima boje.
Element s sadržajem paint
također postaje okvir za sadržaje za pozicionirane potomke - poput elemenata s apsolutnim pozicioniranjem. Element također prima novi kontekst slaganja u odnosu na stranicu i z-index
svojstvo se može koristiti. Iako se usmjerena svojstva, poput top
ili left
, ne primjenjuju.
Pomični element može imati dodatne koristi postavljanjem njegovih potomaka u novi sloj boje koji može pomoći u izvedbi pomicanja. Normalno, elementi za pomicanje mogu uzrokovati stalne ponovne boje jer se potomci pojavljuju i nestaju tijekom pomicanja. Pomični element sa sadržajem boje može potencijalno preskočiti ovo stalno prebojavanje pomičnih potomaka.
Sljedeća demonstracija pruža jednostavno objašnjenje što se događa kada paint
se primijeni ograničenje. Kliknite bilo gdje da biste prebacili sadržaj na ljubičastom okviru. Kada se primijeni ograničenje, neki od zelenih okvira mijenjaju se u izgledu. Izgled zelenih kutija pokazuje kako su obojene ili ne.
Veličina
Vrijednost size
ograničenja obavještava preglednik da nijedan od potomaka ne treba uzeti u obzir prilikom izvođenja proračuna izgleda stranice. Ograničena element mora imati height
i width
svojstva primjenjuju ili će se srušiti na nulu piksela trg. Pri izračunu izgleda stranice treba uzeti u obzir samo sam element jer potomci ne mogu utjecati na veličinu elementa. Potomci sadržanog elementa u potpunosti se preskaču u takvim izračunima; kao da uopće nema potomaka.
Za sve prednosti optimizacije, size
sadržavanje se obično primjenjuje s drugim vrstama sadržaja.
Element s sadržajem size
prima novi kontekst slaganja u odnosu na stranicu i z-index
svojstvo se može koristiti. Iako se usmjerena svojstva, poput top
ili left
, ne primjenjuju.
Sljedeća demonstracija pruža jednostavno objašnjenje što se događa kada size
se primijeni ograničavanje. Kliknite bilo gdje da biste prebacili sadržaj na ljubičastom okviru. Kada se primijeni ograničenje, ljubičasta se kutija mijenja u veličini. Prema zadanim postavkama visinu ljubičastog okvira definiraju njegova djeca, ali uz zadržavanje visina mora biti definirana. Jednom kada se primijeni ograničavanje, potomci više nisu uključeni u izračune izgleda vezanog uz veličinu.
Stil
Vrijednost style
ograničenja obavještava preglednik da će se neka svojstva CSS-a, poput brojača i citata, dosegnuti do sadržanog elementa.
counter-increment
I counter-set
svojstva moraju biti opsegom uz ograničenu elementa pod-stablo. Ako se proširi izvan sadržanog elementa, kreira se novi brojač.
Vrijednosti Objekt sadržaj je od open-quote
, close-quote
, no-open-quote
i no-close-quote
mora se s opsegom uz ograničenu elementa pod-stablo.
Ova vrijednost sadržaja smatra se rizičnom da bude uklonjena iz specifikacije.
Sadržaj
Vrijednost content
zadržavanja kombinacija je i izgleda izgleda i vrijednosti zadržavanja boje. Ovo je ekvivalent primjene ograničavanja na ovaj način:
div ( contain: layout paint; )
Sve gore opisane potencijalne koristi za svaku vrijednost tada bi bile dostupne sadržanom elementu. Ovo bi se ograničenje smatralo relativno sigurnim za široku primjenu na više elemenata na stranici.
Strog
strict
Vrijednosti za sadržaj je kombinacija layout
, paint
te size
za obuzdavanje vrijednosti. Ovo je ekvivalent primjene ograničavanja na ovaj način:
div ( contain: layout paint size; )
Sve gore opisane potencijalne koristi za svaku vrijednost tada bi bile dostupne sadržanom elementu.
Kao najstrožu vrijednost zadrške, ovu bi vrijednost trebalo pažljivo razmotriti. To je zbog zahtjeva za dimenzijama koje nameće sadržani element. Uz ove zahtjeve, ova vrijednost ograničavanja nudi najveće potencijalne koristi od zadržavanja.
Podrška preglednika
Podaci o podršci preglednika potječu iz tvrtke Caniuse, koja sadrži više detalja. Broj označava da preglednik podržava značajku u toj verziji i novijoj.
Radna površina
Krom | Firefox | IE | Rub | Safari |
---|---|---|---|---|
52 | 69 | Ne | 79 | Ne |
Mobitel / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | Ne |