核心概念

  1. 定义

    • 它始终指向当前文档的根元素,在 HTML 文档中对应 <html> 标签。
    • document.body(对应 <body>)和 document.head(对应 <head>)形成层级关系。
  2. document.body 的区别

    <html> <!-- document.documentElement --><head> <!-- document.head --></head><body> <!-- document.body --></body>
    </html>
    

常见用途

1. 操作根元素样式
// 修改根元素背景色
document.documentElement.style.backgroundColor = "#f0f0f0";// 添加 CSS 类名
document.documentElement.classList.add("dark-mode");
2. 获取文档尺寸
// 获取视口宽度(兼容性写法)
const width = document.documentElement.clientWidth;// 获取整个文档高度(包括滚动区域)
const height = document.documentElement.scrollHeight;
3. 动态主题切换
// 通过 CSS 变量定义主题
document.documentElement.style.setProperty("--primary-color", "#ff5722");

注意事项

  1. 兼容性

    • 现代浏览器均支持,但在旧版 IE 中需注意:
      • IE6-8 使用 document.documentElement 获取视口尺寸。
      • 其他浏览器可能使用 document.body
  2. XML 文档

    • 在非 HTML 文档(如 XML)中,document.documentElement 指向 XML 的根元素。
  3. window.document 的区别

    • window.document 是文档对象,而 document.documentElement 是具体的 DOM 元素。

代码示例

// 获取根元素
const rootElement = document.documentElement;// 修改根元素属性
rootElement.setAttribute("lang", "en");// 监听根元素尺寸变化(需配合 ResizeObserver)
const observer = new ResizeObserver(entries => {console.log("文档尺寸变化:", entries[0].contentRect);
});
observer.observe(rootElement);

总结

  • 核心作用:直接操作 HTML 根元素,控制全局样式或获取文档级信息。
  • 典型场景:主题切换、响应式布局、动态样式注入。
  • 替代方案:部分操作可用 document.querySelector("html") 实现,但 document.documentElement 更高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91052.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91052.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/91052.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#进阶之数据结构(动态数组篇)----Queue

1、简介这个是c#封装的队列类型&#xff0c;同栈相反&#xff0c;这个是先进先出&#xff0c;一般用于事件注册&#xff0c;或者数据的按顺序处理&#xff0c;理解为需要排队处理的可以用队列来处理。注意&#xff0c;队列一定是有顺序的&#xff0c;先进确实是会先出&#xff…

使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)

使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理) 一、概述 本文档用于指导如何在运行 Java 应用程序的服务器上,通过keytool工具将证书导入 Java 信任库,解决因证书未被信任导致的 SSL/TLS 通信问题(如PKIX path building failed错误)。 二、操作步骤…

VUE export import

目录 命名导出 导出变量 导出函数 总结 默认导出 导出变量 导出函数 总结 因为总是搞不懂export和Import什么时候需要加{}&#xff0c;什么时候不用&#xff0c;所以自己测试了一下&#xff0c;以下是总结。 需不需要加{}取决于命名导出还是默认导出&#xff0c;命名导…

端侧宠物识别+拍摄控制智能化:解决设备识别频次识别率双低问题

随着宠物成为家庭重要成员&#xff0c;宠物影像创作需求激增&#xff0c;传统相机系统 “人脸优先” 的调度逻辑已难以应对宠物拍摄的复杂场景。毛发边缘模糊、动态姿态多变、光照反差剧烈等问题&#xff0c;推动着智能拍摄技术向 “宠物优先” 范式转型。本文基于端侧 AI 部署…

Popover API 实战指南:前端弹层体验的原生重构

&#x1fa84; Popover API 实战指南&#xff1a;前端弹层体验的原生重构 还在用 position: absolute JS 定位做 tooltip&#xff1f;还在引入大型 UI 库只为做个浮层&#xff1f;现在浏览器已经支持了真正原生的「弹出层 API」&#xff0c;一行 HTMLCSS 就能构建可交互、无障…

CCS-MSPM0G3507-6-模块篇-OLED的移植

前言基础篇结束&#xff0c;接下来我们来开始进行模块驱动如果懂把江科大的OLED移植成HAL库&#xff0c;那其实也没什么难首先配置OLED的引脚这里我配置PA16和17为推挽输出&#xff0c;PA0和1不要用&#xff0c;因为只有那两个引脚能使用MPU6050 根据配置出来的引脚&#xff0c…

意识边界的算法战争—脑机接口技术重构人类认知的颠覆性挑战

一、神经解码的技术奇点当瘫痪患者通过脑电波操控机械臂饮水&#xff0c;当失语者借由皮层电极合成语音&#xff0c;脑机接口&#xff08;BCI&#xff09;正从医疗辅助工具演变为认知增强的潘多拉魔盒。这场革命的核心突破在于神经信号解析精度的指数跃迁&#xff1a;传统脑电图…

详解彩信 SMIL规范

以下内容将系统地讲解彩信 MMS&#xff08;Multimedia Messaging Service&#xff09;中使用的 SMIL&#xff08;Synchronized Multimedia Integration Language&#xff09;规范&#xff0c;涵盖历史、语法结构、在彩信中的裁剪与扩展、常见实现细节以及最佳实践。末尾附示例代…

《红蓝攻防:构建实战化网络安全防御体系》

《红蓝攻防&#xff1a;构建实战化网络安全防御体系》文章目录第一部分&#xff1a;网络安全的攻防全景 1、攻防演练的基础——红队、蓝队、紫队 1.1 红队&#xff08;攻击方&#xff09; 1.2 蓝队&#xff08;防守方&#xff09; 1.3 紫队&#xff08;协调方&#xff09; 2、5…

MFC UI大小改变与自适应

文章目录窗口最大化库EasySize控件自适应大小窗口最大化 资源视图中开放最大化按钮&#xff0c;添加窗口样式WS_MAXIMIZEBOX。发送大小改变消息ON_WM_SIZE()。响应大小改变。 void CDlg::OnSize(UINT nType, int cx, int cy) {CDialog::OnSize(nType, cx, cy);//获取改变后窗…

【Linux网络】:HTTP(应用层协议)

目录 一、HTTP 1、URL 2、协议格式 3、请求方法 4、状态码 5、Header信息 6、会话保持Cookie 7、长连接 8、简易版HTTP服务器代码 一、HTTP 我们在编写网络通信代码时&#xff0c;我们可以自己进行协议的定制&#xff0c;但实际有很多优秀的工程师早就写出了许多非常…

C++-linux 7.文件IO(三)文件元数据与 C 标准库文件操作

文件 IO 进阶&#xff1a;文件元数据与 C 标准库文件操作 在 Linux 系统中&#xff0c;文件操作不仅涉及数据的读写&#xff0c;还包括对文件元数据的管理和高层库函数的使用。本文将从文件系统的底层存储机制&#xff08;inode 与 dentry&#xff09;讲起&#xff0c;详细解析…

WordPress Ads Pro Plugin本地文件包含漏洞(CVE-2025-4380)

免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。 前言:我们建立了一个更多,更全的知识库。每日追踪最新的安全漏洞,追中25HW情报。 更多详情: http…

从爆红到跑路:AI明星Manus为何仅用四个月就“抛弃”了中国?

目录 前言 一、资本的“无形之手”&#xff1a;7500万美元融资背后的“投名状” 二、技术的双重困境&#xff1a;算力封锁与“应用层”的原罪 三、战略的错判&#xff1a;一场与中国市场的“双向奔赴”失败 四、事件的启示&#xff1a;当“出海”变成“出走” &#x1f3a…

CCF-GESP 等级考试 2025年6月认证Python三级真题解析

1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;第1题 2025年4月19日在北京举行了一场颇为瞩目的人形机器人半程马拉松赛。比赛期间&#xff0c;跑动着的机器人会利用 身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等&#xff0c;那么这类传感器类似于…

16.使用ResNet网络进行Fashion-Mnist分类

16.1 ResNet网络结构设计################################################################################################################ #ResNet ################################################################################################################…

C# 结构体 和 类 的区别

✅ 结构体&#xff08;struct&#xff09;是值类型&#xff08;Value Type&#xff09;和类&#xff08;class&#xff09;不同&#xff0c;结构体在赋值和传参时是复制值本身&#xff0c;而不是引用地址。✅ 一、结构体的基本使用示例&#xff1a;using System;struct Point {…

MacBook Air M4 安装 VMware Fusion Pro

VMware Fusion Pro已经对消费者免费了&#xff0c;在Windows系统上的安装和使用教程比较多&#xff0c;Mac上竟然没多少&#xff0c;还充斥着大量的广告以及付费软件&#xff0c;所以趁着今天要安装虚拟机&#xff0c;记录一下完整过程。 1&#xff0c;注册博通账号与登录 首…

vue的优缺点

Vue的优点轻量级框架 Vue的核心库仅关注视图层&#xff0c;体积小巧&#xff08;约20KB&#xff09;&#xff0c;加载速度快&#xff0c;适合快速开发小型到中型项目。易于上手 文档清晰且中文友好&#xff0c;API设计简洁&#xff0c;学习曲线平缓。熟悉HTML、CSS和JavaScript…