<!doctype html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<style>
#container {
writing-mode: horizontal-tb;
overflow: scroll;
position: relative;
width: 200px;
height: 100px;
box-shadow: 0px 0px 12px 0px black;
}
#target {
width: 100%;
height: 100%;
background-color: rgba(0, 255, 0, 0.3);
}
</style>
<p>Overflow: child position and size</p>
<div id="container">
<div id="target">foo</div>
</div>
<script>
var container = document.querySelector('#container');
var target = document.querySelector('#target');
function getTargetOffset() {
var containerRect = container.getBoundingClientRect();
var targetRect = target.getBoundingClientRect();
return {
top: targetRect.top - containerRect.top,
left: targetRect.left - containerRect.left
}
}
test(function() {
assert_equals(target.offsetWidth, container.clientWidth, "width");
assert_equals(target.offsetHeight, container.clientHeight, "height");
var targetOffset = getTargetOffset();
assert_equals(targetOffset.top, container.clientTop, "top");
assert_equals(targetOffset.left, container.clientLeft, "left");
}, "position with scrollbars");
test(function() {
container.style.direction = "rtl";
assert_equals(target.offsetWidth, container.clientWidth, "width");
assert_equals(target.offsetHeight, container.clientHeight, "height");
var targetOffset = getTargetOffset();
assert_equals(targetOffset.top, container.clientTop, "top");
assert_equals(targetOffset.left, container.clientLeft, "left");
}, "position with scrollbars + rtl");
</script>