千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 前端問題之body沒設置高度背景色為什么會全屏顯示?

前端問題之body沒設置高度背景色為什么會全屏顯示?

來源:千鋒教育
發(fā)布人:小千
時間: 2021-01-08 10:07:00 1610071620

還記得我們開發(fā)全屏頁面或者是移動端頁面時經(jīng)常會設置一句話

1

是不是只知道用?卻不知道怎么回事?

原因是,當沒有內容撐開高度時,html和body的默認高度是0,如果內容想要按照比例或是撐滿全屏時,就沒辦法正常使用百分比。

2

而如果只設置body { height: 100%; },這時body以html的高度為基準,但html默認高度也是0,所以需要設置html與body高度同與瀏覽器等高

3

但是,當我們沒有設置任何高度的情況下,給body設置背景色,顏色竟然是可以布滿瀏覽器的,然而可以看到控制臺中,body實實在在是沒有高度的,這究竟是為什么呢?

4

事實上,當我們單獨給body設置背景顏色時,并不是body標簽被賦予了背景色,而是【 瀏覽器畫布 】賦上了顏色,可以理解為,body的背景色被瀏瀏覽器”吃掉“

那如果我們同時給html與body設置背景色,會發(fā)生什么樣的結果呢

5

可以看到,我們設置的body背景色竟然“失效了”,瀏覽器被賦予了html的背景色

而在我看來,實際是我們設置的body背景色[生效了],但因body默認高度為0,所以在頁面中并沒有粉色區(qū)塊顯示,那我們嘗試在body中添加一些內容

6

可以看出,body的高度被撐開,而body的背景色則是實實在在只給了body

所以我們可以得出一個結論

瀏覽器會“吸收”html與body的背景色

當只設置了body背景色時,瀏覽器發(fā)現(xiàn)了,于是把這個背景色“占為己有”

而如果html設置了背景色,瀏覽器則會認為html離我更近,所以會“拿走”html的背景色當成自己的顏色

當然,到現(xiàn)在為止,我們實驗的都是純色背景,那如果我們設置成漸變色,還是相同的結果嗎?

疑問產(chǎn)生,開始實驗

首先,只設置body的背景為線性漸變粉色pink到白色#fff,預想結果應該是和背景一樣,直接瀏覽器從上往下的漸變

7

嗯?這怎么和預想不一樣,再放大頁面看一下漸變,就可以發(fā)現(xiàn)每個漸變的高度和html的高度是一致的,而html的高度則是body的默認margin撐開

8

于是開始設置

9

同樣,如果漸變給html設置的,也不會作用到瀏覽器上

說明瀏覽器并不會把漸變色據(jù)為己有,那如果想要設置全屏漸變,就需要用到我們文章開頭說到的。

10

這么詳細大家應該知道為什么要這么設計了吧,最后歡迎大家添加我們的web前端技術分享交流qq群:791201477   加群找群管理免費領取更多web前端教程視頻和項目代碼,快點等你來哦~~~~~

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT