CSS高度自適應(yīng)的問題

d在做任務(wù)14實(shí)戰(zhàn)的時(shí)候,發(fā)現(xiàn)對(duì)header部分的背景圖片使用height:100%并沒有生效,其實(shí)是跟父元素有關(guān)。
先看代碼:

#header{
    width: 100%;
    height: 100%;
    background: url(../img/01_bg.jpg) 0 0 no-repeat;
    background-size: cover;
}

上面的CSS代碼所產(chǎn)生的效果并不是我所想的那樣:

高度沒有撐開

需要在父元素添加一個(gè)高度自適應(yīng):

html,body{
    height: 100%;
}
#header{
    width: 100%;
    height: 100%;
    background: url(../img/01_bg.jpg) 0 0 no-repeat;
    background-size: cover;
}

圖片顯示完整

在設(shè)置了html和body的height:100%后,header的高度就能自適應(yīng)了
記得在任務(wù)12的時(shí)候也有一個(gè)width:100%的設(shè)置,這就有一個(gè)結(jié)論,一個(gè)對(duì)象的寬高是否能使用百分比顯示,取決于對(duì)象父元素的設(shè)置。在任務(wù)14中,#header是屬于body的子元素,而在默認(rèn)狀態(tài)下,瀏覽器是不會(huì)給body一個(gè)高度屬性的,所以我們?cè)谠O(shè)置#header的height:100%并沒有達(dá)到我們想要的結(jié)果,但是在給body設(shè)置了100%后,#header的高度設(shè)置就有了效果,這就是瀏覽器解析規(guī)則引發(fā)的高度適應(yīng)的問題。

代碼中除了給出body的height:100%外,對(duì)html也應(yīng)用了同樣的設(shè)置,這樣是為了解決IE瀏覽器和Firefox的兼容問題。
IE中的html對(duì)象是默認(rèn)的100%高度,但是body不是,而在firefox中的html標(biāo)簽不是默認(rèn)100%的高度,因此body和html都設(shè)置height:100%,保證我們的代碼在這兩款瀏覽器中都能正常工作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,784評(píng)論 1 92
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,836評(píng)論 18 139
  • 本文主要是起筆記的作用,內(nèi)容來自慕課網(wǎng). 認(rèn)識(shí)CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,661評(píng)論 0 30
  • 收聽音頻,戳鏈接,舊號(hào)itclan已暫停使用,歡迎關(guān)注微信itclanCoder公眾號(hào)可收聽更多音頻 前言 關(guān)于網(wǎng)...
    itclanCoder閱讀 8,203評(píng)論 3 30
  • 第一句:把自己活成一束明媚的陽(yáng)光,溫暖自己,溫暖別人。他人有緣遇見,溫暖他人,他人無緣離開,哪怕嘲笑、辱罵,你依然...
    淑影閱讀 908評(píng)論 1 1