網(wǎng)頁設(shè)計(jì)中的包含塊

本章較早前討論過網(wǎng)頁設(shè)計(jì)中浮動元素的包含塊。對于浮動元素,其包含塊定義為最近的塊級祖先元素。對于定位,情況則沒有這么簡單。CSS2.1定義了以下行為:

“根元素”的包含塊(也稱為初始包含塊)由用戶代理建立,在HTML中,根元素就是html元素,不過有些瀏覽器會使用body作為根元素。在大多數(shù)瀏覽器中,初始包含塊是一個(gè)視窗大小的矩形。

對于一個(gè)非根元素,如果其position值是relative或static,包含塊則由最近的塊級框、表單元格或行內(nèi)塊祖先框的內(nèi)容邊界構(gòu)成。

對于一個(gè)非根元素,如果其position值是absolute,包含塊設(shè)置為最近的position值不是static的祖先元素(可以是任何類型)。這個(gè)過程如下:

—如果這個(gè)祖先是塊級元素,網(wǎng)站建設(shè)包含塊則設(shè)置為該元素的內(nèi)邊距邊界,換句話說,就是由邊框界定的區(qū)域。

—如果這個(gè)祖先是行內(nèi)元素,包含塊則設(shè)置為該祖先元素的內(nèi)容邊界。在從左向右讀的語言中,包含塊的上邊界和左邊界是該祖先元素中第一個(gè)框內(nèi)容區(qū)的上邊界和左邊界,包含塊的下邊界和右邊界是最后一個(gè)框內(nèi)容區(qū)的下邊界和右邊界。在從右向左讀的語言中,包含塊的右邊界對應(yīng)于第一個(gè)框的右內(nèi)容邊界,包含塊的左邊界則取自最后一個(gè)框的左內(nèi)容邊界。上下邊界也是一樣。

—如果沒有祖先,元素的包含塊定義為初始包含塊。

這里有一點(diǎn)很重要:網(wǎng)站建設(shè)里元素可以定位到其包含塊的外面。這與浮動元素使用負(fù)外邊距浮動到其父元素內(nèi)容區(qū)外面很類似。這也說明,“包含塊”一詞實(shí)際上應(yīng)該是“定位上下文”,不過,由于規(guī)范使用的是“包含塊'所以我也沿用了這個(gè)說法(我已經(jīng)在盡力減少由此帶來的誤解,真的!)。

網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷咨詢專線:0871-63535511(點(diǎn)擊可一鍵撥號)