032. CSS 包含塊(containing block)

包含塊:指元素最近的祖先塊元素(inline-block, block 或 list-item 元素)的內(nèi)容區(qū)羊壹。

包含塊的影響

元素的尺寸及位置锋边,常常會受它的包含塊所影響歌馍。

width, height, padding, margin黍氮,left跛十,right彤路,topbottom 等屬性芥映,當(dāng)其值為百分比時洲尊,元素的這些值,就是通過包含塊計算得出奈偏。

如何確定元素的包含塊坞嘀?

確定一個元素的包含塊的過程完全依賴于這個元素的 position 屬性:

  • 如果 position 屬性為 staticrelativesticky惊来,包含塊可能由它的最近的祖先塊元素的內(nèi)容區(qū)的邊緣組成丽涩,也可能會建立格式化上下文。

  • 如果 position 屬性為 absolute ,包含塊就是由它的最近的 position 的值不是 static (也就是值為 fixed, absolute, relativesticky)的祖先元素的內(nèi)邊距區(qū)的邊緣組成矢渊。

  • 如果 position 屬性是 fixed继准,在連續(xù)媒體的情況下(continuous media)包含塊是 viewport ,在分頁媒體(paged media) 下的情況下包含塊是分頁區(qū)域(page area)。

  • 如果 position 屬性是 absolutefixed矮男,包含塊也可能是由滿足以下條件的最近父級元素的內(nèi)邊距區(qū)的邊緣組成的:

    • transform 或 perspective 的值不是 none
    • will-change 的值是 transformperspective
    • filter 的值不是 none 或 will-change 的值是 filter(只在 Firefox 下生效).
    • contain 的值是 paint (例如: contain: paint;)

通過包含塊計算元素屬性的百分比值

如果某些屬性被賦予一個百分值的話移必,它的計算值是由這個元素的包含塊計算而來的。這些屬性包括盒模型屬性和偏移屬性:

  • 要計算 height top 及 bottom 中的百分值昂灵,是通過包含塊的 height 的值避凝。如果包含塊的 height 值會根據(jù)它的內(nèi)容變化,而且包含塊的 position 屬性的值被賦予 relative 或 static 眨补,那么管削,這些值的計算值為 auto。

  • 要計算 width, left, right, padding, margin 這些屬性由包含塊的 width 屬性的值來計算它的百分值撑螺。

<body>
  <section>
    <p></p>
  </section>
</body>

例 1

section {
  display: block;
  width: 400px;
  height: 160px;
  background: lightgray;
}

p {
  width: 50%; /* == 400px * .5 = 200px */
  height: 25%; /* == 160px * .25 = 40px */
  margin: 5%; /* == 400px * .05 = 20px */
  padding: 5%; /* == 400px * .05 = 20px */
  background: cyan;
}

例 2

section {
  display: inline;
  background: lightgray;
}

p {
  width: 50%; /* == body 寬度的一半 */
  height: 200px; /* 使用百分比將會計算為 0 */
  background: cyan;
}

例 3

section {
  position: absolute;
  left: 30px;
  top: 30px;
  width: 400px;
  height: 160px;
  padding: 30px 20px;
  background: lightgray;
}

p {
  position: absolute;
  width: 50%; /* == (400px + 20px + 20px) * .5 = 220px */
  height: 25%; /* == (160px + 30px + 30px) * .25 = 55px */
  margin: 5%; /* == (400px + 20px + 20px) * .05 = 22px */
  padding: 5%; /* == (400px + 20px + 20px) * .05 = 22px */
  background: cyan;
}

例 4

section {
  width: 400px;
  height: 480px;
  margin: 30px;
  padding: 15px;
  background: lightgray;
}

p {
  position: fixed;
  width: 50%; /* == (50vw - (width of vertical scrollbar)) */
  height: 50%; /* == (50vh - (height of horizontal scrollbar)) */
  margin: 5%; /* == (5vw - (width of vertical scrollbar)) */
  padding: 5%; /* == (5vw - (width of vertical scrollbar)) */
  background: cyan;
}

例 5

section {
  transform: rotate(0deg);
  width: 400px;
  height: 160px;
  background: lightgray;
}

p {
  position: absolute;
  left: 80px;
  top: 30px;
  width: 50%; /* == 200px */
  height: 25%; /* == 40px */
  margin: 5%; /* == 20px */
  padding: 5%; /* == 20px */
  background: cyan;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末含思,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子甘晤,更是在濱河造成了極大的恐慌含潘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件线婚,死亡現(xiàn)場離奇詭異遏弱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)塞弊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門漱逸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人游沿,你說我怎么就攤上這事饰抒。” “怎么了诀黍?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵袋坑,是天一觀的道長。 經(jīng)常有香客問我眯勾,道長枣宫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任吃环,我火速辦了婚禮也颤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘模叙。我一直安慰自己,他們只是感情好鞋屈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布范咨。 她就那樣靜靜地躺著故觅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪渠啊。 梳的紋絲不亂的頭發(fā)上输吏,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機(jī)與錄音替蛉,去河邊找鬼贯溅。 笑死,一個胖子當(dāng)著我的面吹牛躲查,可吹牛的內(nèi)容都是我干的它浅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼镣煮,長吁一口氣:“原來是場噩夢啊……” “哼姐霍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起典唇,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤镊折,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后介衔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恨胚,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年炎咖,在試婚紗的時候發(fā)現(xiàn)自己被綠了赃泡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡塘装,死狀恐怖急迂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蹦肴,我是刑警寧澤僚碎,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站阴幌,受9級特大地震影響勺阐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜矛双,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一渊抽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧议忽,春花似錦懒闷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帮辟。三九已至,卻和暖如春玩焰,著一層夾襖步出監(jiān)牢的瞬間由驹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工昔园, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔓榄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓默刚,卻偏偏與公主長得像甥郑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子羡棵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一個元素的大小和位置都受其父級元素的影響壹若。通常來說,包含塊是一個元素最近的塊級父級的內(nèi)容區(qū)域皂冰,不過也有一些例外的情...
    看穿一切的我閱讀 146評論 0 0
  • 建議直接閱讀官方文檔: https://developer.mozilla.org/zh-CN/docs/Web/...
    good__day閱讀 333評論 0 0
  • 文檔流 文檔流處在網(wǎng)頁的最底層店展,它表示的是一個頁面中的位置, 我們所創(chuàng)建的元素默認(rèn)都處在文檔流中元素在文檔流中的特...
    fb941c99409d閱讀 460評論 0 0
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案秃流? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評論 1 92
  • 夜鶯2517閱讀 127,717評論 1 9