当前位置:首页 > 科技  > 软件

揭开空白网页背景色的神秘面纱

来源: 责编: 时间:2024-02-01 12:51:05 310观看
导读前言一个看似简单实则有坑的问题:空白网页的背景色是什么?大家是不是都会认为是白色,但事实并非如此,有时候我们眼睛看到的也不一定是真的。页面根元素背景色比如下面这段代码:<!-- ... --><style> body { background-

前言

一个看似简单实则有坑的问题:空白网页的背景色是什么?ejs28资讯网——每日最新资讯28at.com

大家是不是都会认为是白色,但事实并非如此,有时候我们眼睛看到的也不一定是真的。ejs28资讯网——每日最新资讯28at.com

页面根元素背景色

比如下面这段代码:ejs28资讯网——每日最新资讯28at.com

<!-- ... --><style>  body {    background-color: skyblue;  }</style><body>    前端南玖</body>

这样我们能够看到整个页面都变成蓝色。ejs28资讯网——每日最新资讯28at.com

ejs28资讯网——每日最新资讯28at.com

看到这里可能有人会觉得是body填充了整个视图,但稍微有经验的同学知道,body的高度在没定义时应该是里面的内容撑起的ejs28资讯网——每日最新资讯28at.com

不信我们可以为body加上边框再来观察:ejs28资讯网——每日最新资讯28at.com

body {  background-color: skyblue;  border: 1px dashed black;}

ejs28资讯网——每日最新资讯28at.com

那么问题又来了:既然body的高度只有内容区域那部分,那为什么整个页面的背景色都变成了蓝色?ejs28资讯网——每日最新资讯28at.com

我们可以在w3c规则中找到Backgrounds of Special Elements这一节,可以看到这些内容:ejs28资讯网——每日最新资讯28at.com

  1. 画布是呈现文档的无限平面。
  2. 根元素的背景成为画布背景,其背景绘制区域扩展到覆盖整个画布。

看到这两句话是不是就能够理解为什么body的高度只有内容区域那部分,而整个页面的背景色都变成蓝色了。这是因为根元素的背景色绘制再了整个画布上ejs28资讯网——每日最新资讯28at.com

那这跟空白网页的背景是什么颜色也没关系呀?ejs28资讯网——每日最新资讯28at.com

别急,在w3c规则中还有这样一句话:ejs28资讯网——每日最新资讯28at.com

根元素不会再次绘制这个背景,也就是说,根元素的背景色是透明的。ejs28资讯网——每日最新资讯28at.com

因为对于浏览器来说把根元素背景与画布背景绘制成同一个颜色是没有意义的!ejs28资讯网——每日最新资讯28at.com

影响画布的根元素除了body,还有htmlejs28资讯网——每日最新资讯28at.com

比如我们再加上这段代码ejs28资讯网——每日最新资讯28at.com

html {  background-color: red;  border: 3px dashed seagreen;}

我们为html加上了背景色及边框,大家可以思考下此时的页面会怎样渲染呢?ejs28资讯网——每日最新资讯28at.com

ejs28资讯网——每日最新资讯28at.com

这里我们可以看到html的背景色取代了body的背景色成为了画布的背景色,而html本身高度也是内容撑起的高度。ejs28资讯网——每日最新资讯28at.com

这样就能够证明空白网页的根元素背景色是透明的,而不是我们认为的白色ejs28资讯网——每日最新资讯28at.com

画布背景色

既然空白网页根元素的背景色是透明的,那我们看到的白色会不会是画布的颜色呢?ejs28资讯网——每日最新资讯28at.com

这里我们可以使用CSS中的mix-blend-mode混合颜色来验证:ejs28资讯网——每日最新资讯28at.com

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <style>        .name {            color: green;            mix-blend-mode: difference        }    </style></head><body>    <div class="name">前端南玖</div></body></html>

这里如果画布的背景色是白色的话,那此时的文字颜色应该会变成粉色 between(绿色 + 白色)= 粉色ejs28资讯网——每日最新资讯28at.com

ejs28资讯网——每日最新资讯28at.com

但事实上文字颜色还是绿色,我们再来给body添加一个白色的背景ejs28资讯网——每日最新资讯28at.com

body {  background-color: white;  border: 1px dashed black;}.name {  color: green;  mix-blend-mode: difference}

ejs28资讯网——每日最新资讯28at.com

此时可以看到文字颜色变成了粉色。ejs28资讯网——每日最新资讯28at.com

所以这里可以证明空白网页的画布背景色也是透明的。ejs28资讯网——每日最新资讯28at.com

浏览器底色

上面两个例子我们分别证明了空白网页的根元素背景色以及画布的背景色都是透明的。那么我们看到的“白色”到底是哪里来的?ejs28资讯网——每日最新资讯28at.com

在w3c中还有这样一句话:ejs28资讯网——每日最新资讯28at.com

ejs28资讯网——每日最新资讯28at.com

如果画布背景不是不透明的,则其下方的画布表面会显示出来。画布表面的纹理取决于 UA(但通常是不透明的白色)。ejs28资讯网——每日最新资讯28at.com

所以,我们看到的所谓白色其实是浏览器的底色。ejs28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-70447-0.html揭开空白网页背景色的神秘面纱

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 前端性能优化 — 保姆级 Performance 工具使用指南

下一篇: 一篇文章带你了解JavaScript for循环

标签:
  • 热门焦点
  • 掘力计划第 20 期:Flutter 混合开发的混乱之治

    在掘力计划系列活动第20场,《Flutter 开发实战详解》作者,掘金优秀作者,Github GSY 系列目负责人恋猫的小郭分享了Flutter 混合开发的混乱之治。Flutter 基于自研的 Skia 引擎
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之&ldquo;想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!&rdquo;曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对&ldquo;势&rdquo;的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己&ldquo;当家&rdquo;的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 华为将推出盘古数字人大模型 可帮助用户12小时完成数字人生成

    在今日举行的2023年华为云数字文娱AI创新峰会上,华为云全球Marketing与销售服务总裁石冀琳表示,华为云将在后续推出盘古数字人大模型,可帮助用户12小
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24 巧系列一体机目前已在线上线下各平台同步开售。onebot M24 巧系列采用一体化轻薄机身设计,最薄处为 10.15mm,拥有宝石红、午夜蓝、石墨绿、雅致
  • 由于成本持续增加,笔记本产品价格预计将明显上涨

    根据知情人士透露,由于材料、物流等成本持续增加,笔记本产品价格预计将在2021年下半年有明显上涨。进入6月下旬以来,全球半导体芯片缺货情况加剧,显卡、处理器
Top