Fenster.innerWidth vs-Dokument.documentElement.clientWidth
Bezüglich window.innerWidth
und document.documentElement.clientWidth
,
-
Webkit (Chrome /Safari) Ansprüche
innerWidth
ist kleiner alsclientWidth
. -
Trident und Presto Anspruch
innerWidth
größer ist alsclientWidth
. -
Gecko Ansprüche
innerWidth
ist die gleiche Größe wieclientWidth
.
Was ist der richtige Verhalten erklärte, W3C (oder silimar "Behörde")?
Test-Skript (auf JSFiddle) (auf GoogleHost):
JS:
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);
HTML:
<div id="d"></div>
(Führen Sie das snippet in full page mode und un-maximieren oder "restore" - Fenster. Beobachten debug_msg
Sie beim ziehen der Kante des Fensters, um die Größe anzupassen.)
- "Fenster inner-Größe: 1280x909 | client-Größe:1280x909" Chrome 13
- zoom zoom
- Ah... ich sehe... mir scheint, dass es in der Regel nur um 1px, und dass nur einige der Zeit.
- das ist, was ich bin reden über. webkit ' s Fenster.innerWidth ist kleiner, aber in opera und ie wird es größer
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gemäß der W3C - Spezifikation (17. März 2016):
Ich bin mit diesem:
Deckt es Fälle, in denen die scrollbar wird nicht berücksichtigt und hat die mobile-Unterstützung.