contain
Имовина у ЦСС указује на претраживачу који елемент и његови потомци се сматрају независним од дрвета документа што је више могуће. Ово потенцијално доноси предности перформанси с прорачунима у распореду, стилу, боји, величини или било којој комбинацији за ограничено подручје ДОМ-а, а не за целу страницу.
Својство има пет стандардних вредности и две стенографске вредности које комбинују варијације стандардних вредности. Свака вредност има неке јединствене и заједничке користи у зависности од контекста елемента који их примењује.
Типична употреба овог својства је елемент који садржи садржај неке врсте. Размислите о виџету који приказује долазне податке који мењају изглед и визуелне елементе потомака елемента. Други елемент који треба размотрити је онај који садржи резултате података треће стране, као што је оглас у натпису, где нам предности задржавања омогућавају да или не одредимо приоритет сликања одређеног садржаја, како поступамо са одређивањем величине примљеног садржаја или утврђујемо да ли садржај чак требало да буде видљиво. С друге стране, углавном статична веб локација ће имати мало користи осим првог изгледа и боје на екрану при учитавању странице.
Синтакса
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 */ )
Вредности имовине
Изглед
Вредност layout
ограничења обавештава прегледач да нико од потомака елемента не утиче на друге елементе на страници, нити ти други елементи имају било какав утицај на потомке садржаног елемента. Ово омогућава прегледачу да потенцијално смањи број израчунавања неопходних приликом креирања изгледа странице
Још једна предност је та што ако је садржани елемент ван екрана или је на неки начин замрачен, тада прегледач може одложити или пребацити повезане прорачуне на нижи приоритет. Пример за то је садржани елемент који се не види на крају блок елемента и почетак тог блок елемента је видљив.
Елемент са layout
садржајем постаје оквир за садржаје за позициониране потомке - као што су елементи са апсолутним позиционирањем. Елемент прима нови контекст слагања у односу на страницу и z-inde
својство к се може користити. Иако се својства усмерења, попут top
или left
, не примењују.
Иако потомци садржаног елемента можда неће утицати на друге елементе на страници, и даље могу утицати на свој садржани елемент претка. На пример, потомак може проузроковати да се садржани елемент промени у величини као реакција на промене. У том случају, садржани елемент и даље може потенцијално утицати на друге елементе на страници, али потомци и даље неће бити укључени у те прорачуне.
Следећа демонстрација пружа једноставно објашњење шта се дешава када layout
се примени ограничење . Кликом на сваки од горњих оквира примењује се задржавање и црвене стрелице ће променити изглед. Појава црвених стрелица сугерише да ли потомци оквира утичу на остале оквире на страници током израчунавања изгледа.
Боја
Вредност paint
задржавања обавештава прегледач да нико од потомака елемента неће бити обојен изван оквира за оквир елемента. Ако је позиционирани елемент позициониран тако да има део свог ограничавајућег оквира који треба да га исече садржани елемент, border-box
тада тај део неће бити обојен. Ако је потомак елемента позициониран у потпуности изван садржаног елемента, border-box
он уопште није обојен. Ово је слично примени overflow: hidden;
на елемент, али без користи од прескакања или смањења потребних прорачуна.
Још једна предност је та што ако садржани елемент на неки начин није видљив у оквиру за приказ, тада може прескочити потомке елемента приликом извођења прорачуна. Пример овога је елемент који је постављен са странице лево од оквира за приказ. Ако садржани елемент није видљив, то је гаранција да његов садржај неће бити видљив. Због тога се од њих не захтева да учествују у прорачунима боје.
Елемент са paint
садржајем такође постаје оквир за смештање позиционираних потомака - као што су елементи са апсолутним позиционирањем. Елемент такође прима нови контекст слагања у односу на страницу и z-index
својство се може користити. Иако се својства усмерења, попут top
или left
, не примењују.
Клизни елемент може добити додатне користи постављањем његових потомака у нови слој боје који може помоћи у перформансама помицања. Обично елементи за помицање могу проузроковати сталне поновне боје, јер се потомци појављују и нестају током помицања. Клизни елемент са садржајем боје може потенцијално да прескочи ово стално префарбавање помичних потомака.
Следећа демонстрација пружа једноставно објашњење шта се дешава када paint
се примени ограничење . Кликните било где да бисте пребацили садржај на љубичастом пољу. Када се примени ограничење, неки од зелених оквира се мењају у изгледу. Изглед зелених кутија показује како су обојене или не.
Величина
Вредност size
ограничења обавештава прегледач да ниједан од потомака не мора да се узме у обзир приликом извођења прорачуна изгледа странице. Садржаних елемент мора имати height
и width
особине примењене, или ће пропасти до нула пиксела квадрат. За прорачун изгледа странице треба узети у обзир само сам елемент јер потомци не могу утицати на величину елемента. Потомци садржаног елемента у потпуности се прескачу у таквим прорачунима; као да уопште нема потомке.
Да би се у потпуности искористиле предности оптимизације, size
задржавање се обично примењује са другим врстама задржавања.
Елемент са size
садржајем прима нови контекст слагања у односу на страницу и z-index
својство се може користити. Иако се својства усмерења, попут top
или left
, не примењују.
Следећа демонстрација пружа једноставно објашњење шта се дешава када size
се примени ограничење . Кликните било где да бисте пребацили садржај на љубичастом пољу. Када се примени ограничење, љубичасто поље се мења у величини. Подразумевано висину љубичасте кутије дефинишу њена деца, али уз задржавање висина мора бити дефинисана. Једном када се примени ограничење, потомци више нису укључени у прорачуне распореда који се односе на величину.
Стил
Вредност style
ограничења обавештава прегледач да ће се нека својства ЦСС-а, попут бројача и цитата, применити на садржани елемент.
counter-increment
И counter-set
особине морају бити сцопед да садржаних елемента под дрветом. Ако се прошири изван садржаног елемента, креира се нови бројач.
Вредности садржаја имовине је за open-quote
, close-quote
, no-open-quote
, и no-close-quote
мора бити сцопед да садржаних елемента под дрветом.
Ова вредност садржаја сматра се ризичном да буде уклоњена из спецификације.
Садржај
Вредност content
задржавања је комбинација вредности распореда и боје. Ово је еквивалент примене ограничења на овај начин:
div ( contain: layout paint; )
Све потенцијалне користи описане горе за сваку вредност би тада биле доступне садржаном елементу. Ово задржавање сматрало би се релативно сигурним за широку примену на више елемената на страници.
Строго
strict
Вредност задржавања је комбинација layout
, paint
и size
сузбијања вредности. Ово је еквивалент примене ограничења на овај начин:
div ( contain: layout paint size; )
Све потенцијалне користи описане горе за сваку вредност би тада биле доступне садржаном елементу.
Као најстрожу од вредности садржаја, ову вредност треба користити са пажљивим разматрањем. То је због захтева за димензијама које намеће садржани елемент. Уз ове захтеве, ова вредност ограничавања нуди највише потенцијалних благодати учинка задржавања.
Подршка прегледача
Подаци о подршци за прегледач су од компаније Цаниусе, која садржи више детаља. Број указује на то да прегледач подржава функцију у тој верзији и новијој.
Десктоп
Хром | Фирефок | ИЕ | Ивица | Сафари |
---|---|---|---|---|
52 | 69 | Не | 79 | Не |
Мобиле / Таблет
Андроид Цхроме | Андроид Фирефок | Андроид | иОС Сафари |
---|---|---|---|
88 | 85 | 81 | Не |