gpt4 book ai didi

javascript - window.innerWidth 与 document.documentElement.clientWidth

转载 作者:IT王子 更新时间:2023-10-29 03:14:49 27 4
gpt4 key购买 nike

关于window.innerWidthdocument.documentElement.clientWidth

  1. Webkit (Chrome/Safari) 声明 innerWidth 小于 clientWidth

  2. Trident 和 Presto 声称 innerWidth 大于 clientWidth

  3. Gecko 声称 innerWidthclientWidth 大小相同。

W3C(或类似的“权威”)声明正确行为是什么?

测试脚本(on JSFiddle)(在 GoogleHost 上):

setInterval(function() {
var inner_w = window.innerWidth;
var inner_h = window.innerHeight;
var client_w = document.documentElement.clientWidth;
var client_h = document.documentElement.clientHeight;
var debug_msg = "inner: " + inner_w + "-" + inner_h + "<br>client: " + client_w + "-" + client_h;
document.getElementById("d").innerHTML = debug_msg;
document.title = debug_msg;
document.body.style.background = (client_w === inner_w && client_h === inner_h ? "green" : "red");
}, 60);
<div id="d"></div>

(以全页模式运行代码段并取消最大化或“恢复”窗口。在拖动窗口边缘以调整其大小的同时观察debug_msg。)

最佳答案

根据 W3C specification (2016 年 3 月 17 日):

The innerWidth attribute must return the viewport width including the size of a rendered scroll bar (if any), or zero if there is no viewport.

...

The clientWidth attribute must run these steps:

  1. If the element has no associated CSS layout box or if the CSS layout box is inline, return zero.
  2. If the element is the root element and the element's document is not in quirks mode, or if the element is the HTML body element and the element's document is in quirks mode, return the viewport width excluding the size of a rendered scroll bar (if any).
  3. Return the width of the padding edge excluding the width of any rendered scrollbar between the padding edge and the border edge, ignoring any transforms that apply to the element and its ancestors.

关于javascript - window.innerWidth 与 document.documentElement.clientWidth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com