Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /css/cssom-view/detached-element-geometry.window.html - WPT Dashboard Interop Dashboard
// META: title=Geometry of detached elements
"use strict";
test(() => {
const el = document.createElement("p");
assert_equals(el.clientHeight, 0);
}, "clientHeight should return 0 for an element with no associated CSS layout box");
test(() => {
const el = document.createElement("p");
assert_equals(el.clientLeft, 0);
}, "clientLeft should return 0 for an element with no associated CSS layout box");
test(() => {
const el = document.createElement("p");
assert_equals(el.clientTop, 0);
}, "clientTop should return 0 for an element with no associated CSS layout box");
test(() => {
const el = document.createElement("p");
assert_equals(el.clientWidth, 0);
}, "clientWidth should return 0 for an element with no associated CSS layout box");
test(() => {
const zeroDimensions = {
x: 0,
y: 0,
bottom: 0,
height: 0,
left: 0,
right: 0,
top: 0,
width: 0
};
const el = document.createElement("p");
const rect = el.getBoundingClientRect();
for (const [property, value] of Object.entries(zeroDimensions)) {
assert_equals(rect[property], value, property);
}
}, "getBoundingClientRect should return 0 value dimensions for an element with no associated CSS layout box");
test(() => {
const el = document.createElement("p");
assert_equals(el.scrollHeight, 0);
}, "scrollHeight should return 0 for an element disconnected from a document");
test(() => {
const el = document.createElement("p");
assert_equals(el.scrollLeft, 0);
}, "scrollLeft should return 0 for an element disconnected from a document");
test(() => {
const el = document.createElement("p");
assert_equals(el.scrollTop, 0);
}, "scrollTop should return 0 for an element disconnected from a document");
test(() => {
const el = document.createElement("p");
assert_equals(el.scrollWidth, 0);
}, "scrollWidth should return 0 for an element disconnected from a document");
test(() => {
const el = document.createElement("p");
assert_equals(el.offsetHeight, 0);
}, "offsetHeight should return 0 for an element disconnected from a document");
test(() => {
const el = document.createElement("p");
assert_equals(el.offsetLeft, 0);
}, "offsetLeft should return 0 for an element disconnected from a document");
test(() => {
const el = document.createElement("p");
assert_equals(el.offsetParent, null);
}, "offsetParent should return null for an element disconnected from a document");
test(() => {
const el = document.createElement("p");
assert_equals(el.offsetTop, 0);
}, "offsetTop should return 0 for an element disconnected from a document");