当前位置: 首页 > news >正文

document.documentElement详解

核心概念

  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.dtcms.com/a/280019.html

相关文章:

  • Webshell连接工具原理
  • 渗透笔记1-4
  • html js express 连接数据库mysql
  • 【算法训练营Day12】二叉树part2
  • 进程---基础知识+命令+函数(fork+getpid+exit+wait+exec)
  • 100道K8S面试题
  • LVS初步学习
  • google浏览器::-webkit-scrollbar-thumb设置容器滚动条滑块不生效
  • langflow搭建带记忆功能的机器人
  • 【React Native】环境变量和封装 fetch
  • Knife4j快速入门
  • 【深度学习:进阶篇】--4.4.集束搜索(Beam Search)
  • 深入探索ZYNQ网络通信:四大实现方案与创新应用
  • VMWare 使用 U 盘 PE 系统安装 Win 11 ESD 镜像
  • 日常--PyCharm清除attach记录
  • Linux进程优先级机制深度解析:从Nice值到实时调度
  • 详解从零开始实现循环神经网络(RNN)
  • 实现高效、可靠的基于骨骼的人体姿态建模(第二章 基于三维人体姿态回归的语义图卷积网络)
  • 智慧城市建设关键支撑,楼宇自控系统的战略性技术价值解读
  • 用Joern执行CPGQL找到C语言中不安全函数调用的流程
  • Pythonic:Python 语言习惯和哲学的代码风格
  • OFDM系统中关于信号同步的STO估计与CFO估计的MATLAB仿真
  • 关于股票交易的人脉分析
  • NW831NW910美光固态闪存NW887NW888
  • LLM-SECURITY-PROMPTS大模型提示词攻击测评基准
  • 下载 | Win10 2021精简版,预装应用极少!(7月更新、Win 10 IoT LTSC 2021版、适合老电脑安装)
  • linux设备UAC配置
  • 飞桨AI Studio云编程环境搭建
  • Spring AI 初学者指南:从入门到实践与常用大模型介绍
  • Cesium加载3DTiles模型并且重新设置3DTiles模型的高度