<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <style type="text/css" media="screen"> div { -webkit-box-sizing: border-box; } .container { position: absolute; left: 20px; top: 50px; } .reflected { position: relative; width: 150px; height: 120px; border: 1px solid black; -webkit-box-reflect: below 6px; } .box { width: 100px; height: 100px; } .inner { position: absolute; top: 10px; left: 10px; background-color: green; } .composited { transform: translateZ(0); } .inner.moved { left: 25px; } #indicator { position: absolute; top: 135px; left: 26px; background-color: red; } </style> <script type="text/javascript" charset="utf-8"> function doTest() { document.getElementById('inner').className = 'inner moved box'; } window.addEventListener('load', doTest, false); </script> </head> <p>Position of reflected layer should update correctly. You should see no red below.</p> <div class="container"> <div id="indicator" class="box"></div> <div class="reflected composited"> <div id="inner" class="inner box"> </div> </div> </div> </html>