給body元素設置背景色,但是body沒有內容,高度沒有填充整個瀏覽器情況下,瀏覽器整個窗口都是body設置的背景色,這個是什么導致的?
一般情況下,我們css控制的最高結點就是body,例如設置:body{background:#069;}則瀏覽器界面就是完全的#068的背景色。 這里看上去是body標簽下的背景色起作用了,我倒不這么認為。看下面的一段css代碼:
body{background:#069; margin:100px; border:30px solid #093; height: 100px;}意思很簡明:外邊距100像素,邊框30像素,背景色#069,按照對一般標簽的理解,100像素的外邊距應該不含有背景色的,然而顯示的結果是:
![]()
然而一旦設置了html的background背景色之后,body的背景色將失效。例如下面的簡短代碼:
html{background:#999;}
body{background:#069; margin:100px; border:30px solid #093;height:100px;}跟上面的相比,只是添加了html的背景色,結果:
![]()
結果是body標簽滿屏的背景色不見了。我覺得這和瀏覽器本身的機制有關,我們可以認為瀏覽器是一個會“吸收”顏色的東西,當我們給body設置顏色時,雖然body沒有高,但是瀏覽器底板需要顏色,它看到了body的顏色 ,就想要拿來變成自己的,然后它把自己搞成了body設置的那個顏色,當我們給html也設置了一個顏色后,瀏覽器發(fā)現,html好像離我更近啊,于是就就近渲染了html標簽的背景色給自己. 這樣一來,我們看到的瀏覽器窗口又變成html設置的顏色了。
因此,我們所看到的那個背景色,既不屬于body標簽,也不屬于html,它屬于更底層的那個底板,是瀏覽器窗口本身吸收了body和html標簽中更靠近自己的那個后,渲染出來的瀏覽器窗口底板的顏色。
關鍵詞:



