body、html高度为零但有背景颜色

浏览器在处理HTML文档时,body和html默认高度虽为0,但设置的背景颜色仍能显示。这是因为浏览器有一个默认的底板,会吸收并渲染这两个标签的背景色。当同时设置body和html的背景色,由于html更靠近浏览器,所以显示的是html的背景颜色。这一现象揭示了浏览器渲染页面时的层次逻辑。

1、在html 文档之中,body和html的默认高度为0,但是我们给body或者html设置背景颜色是会有对应的颜色显示的。这是为什么呢?

        其实这是浏览器的原因!

        浏览器相当于有个底板,吸收了给html或者body设置的背景颜色。

2、当给body 和html都设置背景颜色时,为什么显示的都是html的背景颜色?

        这是因为浏览器会吸收 body和html标签中更靠近自己的那个,并将颜色渲染到页面上,因为html想比于body更靠近浏览器,所以页面显示的是html的背景颜色。

要实现背景颜色高度占据页面一半,可使用不同的方法。 ### 使用视口单位 `vh` 使用 `vh` 单位可以很方便地设置元素高度为视口高度的一定比例,1vh 等于视口高度的 1%,设置为 50vh 即页面高度的一半[^3]。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body { margin: 0; } .half-height-bg { height: 50vh; background-color: lightblue; } </style> </head> <body> <div class="half-height-bg"></div> </body> </html> ``` ### 设置 `html` 和 `body` 高度 先将 `html` 和 `body` 的高度设置为 100%,再给目标元素设置 50% 的高度[^5]。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> html, body { height: 100%; margin: 0; } .half-height-bg { height: 50%; background-color: lightgreen; } </style> </head> <body> <div class="half-height-bg"></div> </body> </html> ``` ### 现有设置无效的原因及解决办法 如果设置无效,可能是因为父元素高度未正确设置。例如,当给子元素设置百分比高度时,其父元素需要有明确的高度值。若父元素高度0,子元素的百分比高度设置将无效。此时可以通过设置父元素高度为 100% 或使用 `vh` 单位来解决。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值