| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>This tests ancestor clipping with subpixel positioning.</title> |
| <style> |
| .container { |
| position: absolute; |
| background-color: green; |
| width: 15px; |
| height: 15px; |
| } |
| |
| .clippingAncestor { |
| width: 10px; |
| height: 10px; |
| overflow: hidden; |
| border-style: solid; |
| border-color: red; |
| } |
| |
| .jiggle { |
| height: 5px; |
| width: 5px; |
| position: relative; |
| background-color: blue; |
| } |
| </style> |
| </head> |
| <body> |
| <script> |
| var subpixelForContainer = 0; |
| for (var i = 0; i < 20; ++i) { |
| var borderWidth = 2; |
| var subpixelForJiggle = -2; |
| for (var j = 0; j < 20; ++j) { |
| var container = document.createElement("div"); |
| container.className = "container"; |
| container.style.left = i * 20 + subpixelForContainer + "px"; |
| container.style.top = j * 20 + subpixelForContainer + "px"; |
| document.body.appendChild(container); |
| subpixelForContainer += 0.05; |
| |
| var clippingAncestor = document.createElement("div"); |
| clippingAncestor.className = "clippingAncestor"; |
| clippingAncestor.style.borderWidth = borderWidth + "px"; |
| container.appendChild(clippingAncestor); |
| borderWidth += 0.1; |
| |
| var jiggle = document.createElement("div"); |
| jiggle.className = "jiggle"; |
| jiggle.style.top = subpixelForJiggle + "px"; |
| jiggle.style.left = subpixelForJiggle + "px"; |
| subpixelForJiggle += 0.1; |
| clippingAncestor.appendChild(jiggle); |
| } |
| } |
| </script> |
| </body> |
| </html> |