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

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

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

前言

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

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

页面根元素背景色

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

画布背景色

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

这里我们可以使用CSS中的mix-blend-mode混合颜色来验证:B0028资讯网——每日最新资讯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(绿色 + 白色)= 粉色B0028资讯网——每日最新资讯28at.com

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

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

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

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

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

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

浏览器底色

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 石头自清洁扫拖机器人G10S评测:多年黑科技集大成之作 懒人终极福音

    科技圈经常能看到一个词叫“缝合怪”,用来形容那些把好多功能或者外观结合在一起的产品,通常这样的词是贬义词,但如果真的是产品缝合的好、缝合的实用的话,那它就成了中性词,今
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 一加首款折叠屏!一加Open渲染图出炉:罕见单手可握小尺寸

    8月5日消息,此前就有爆料称,一加首款折叠屏手机将会在第三季度上市,如今随着时间临近,新机的各种消息也开始浮出水面。据悉,这款新机将会被命名为&ldquo;On
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • JVM优化:实战OutOfMemoryError异常

    一、Java堆溢出堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证 GC Roots 到对象之间有可达路径来避免垃 圾收集回收机制清除这些对象,当这些对象所占空间超过
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein&ldquo;利用市场支配力量强迫服装厂商与之签订独家
  • 东方甄选单飞:有些鸟注定是关不住的

    作者:彭宽鸿来源:华尔街科技眼&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;东方甄选创始人俞敏洪带队的&ldquo;7天甘肃行&rdquo;直播活动已在近日顺利收官。成立后一
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top