很多情況下,網(wǎng)頁(yè)設(shè)計(jì)者如果已經(jīng)確定將元素定位到哪里,接下來(lái)可能希望聲明該元素應(yīng)當(dāng)有多高、多寬。另外,有時(shí)設(shè)計(jì)人員可能想限制一個(gè)定位元素的高度和寬度,還有一些情況下也許你希望瀏覽器自動(dòng)地計(jì)算寬度或高度(或者寬度和高度都由瀏覽器自動(dòng)計(jì)算)。
如果想為網(wǎng)站建設(shè)定位元素指定一個(gè)特定的寬度,顯然要用width屬性。類(lèi)似地,利用height 可以為定位元素聲明特定的高度。
盡管有時(shí)設(shè)置一個(gè)元素的寬度和高度很重要,但對(duì)于定位元素來(lái)說(shuō)則不一定必要。例如,網(wǎng)頁(yè)設(shè)計(jì)者如果使用top. right, bottom和left來(lái)描述元素4個(gè)邊的放置位置,那么元素的高度和寬度將由這些偏移隱含確定。假設(shè)你希望一個(gè)絕對(duì)定位元素從上到下填充其包含塊的左半部分,可以使用以下值,其結(jié)果見(jiàn)圖10-28所示:
top: 0; bottom: 0; left: 0; right: 50%;
圖10-28:使用偏移屬性定位元素的同時(shí)設(shè)置元素大小
由于width和height的默認(rèn)值都是auto,圖10-28所示的結(jié)果就好像使用了以下值一樣:
top: 0; bottom: 0; left: 0; right: 50%; width: 50%; height: 100%;
這個(gè)例子中盡管出現(xiàn)了Width和height,但它們對(duì)元素的布局沒(méi)有任何作用。
當(dāng)然,倘若向元素增加了外邊距、邊框或內(nèi)邊距,此時(shí)如果為height和width顯式指定了值,情況就不同了:
top: 0; bottom: 0; left: 0; right: 50%; width: 50%; height: 100%; padding: 2em;
這會(huì)使網(wǎng)頁(yè)設(shè)計(jì)定位元素延伸超出其包含塊,如圖10-29所示。
圖10-29:定位元素,使其部分超出包含快
在前幾章已經(jīng)看到,之所以會(huì)發(fā)生這種情況,原因在于向內(nèi)容區(qū)增加了內(nèi)邊距,而且內(nèi)容區(qū)的大小由height和width的值確定。要得到網(wǎng)頁(yè)設(shè)計(jì)者想要的內(nèi)邊距,而且仍保證元素不超出其包含塊,可以去除height和width聲明,或者顯式地將其設(shè)置為auto。