| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src='../../resources/js-test-pre.js'></script> |
| <script> |
| description('Percentage margins on absolutely positioned elements are relative to the container\'s logical width'); |
| |
| function testMargins(outerProperties, innerProperties, expectedProperties) { |
| var outer = document.createElement('div'), |
| inner = document.createElement('div'), |
| property, style; |
| for (property in outerProperties) |
| outer.style.setProperty(property, outerProperties[property]); |
| for (property in innerProperties) |
| inner.style.setProperty(property, innerProperties[property]); |
| outer.appendChild(inner); |
| document.body.appendChild(outer); |
| style = getComputedStyle(inner); |
| for (property in expectedProperties) |
| shouldBe('"' + style.getPropertyValue(property) + '"', '"' + expectedProperties[property] + '"'); |
| document.body.removeChild(outer); |
| } |
| |
| var WritingModes = { |
| 'HORIZONTAL-TB': 'horizontal-tb', |
| 'VERTICAL-LR': 'vertical-lr', |
| 'VERTICAL-RL': 'vertical-rl' |
| } |
| |
| var outerProperties = { |
| position: 'relative', |
| width: '100px', |
| height: '200px', |
| }, innerProperties = { |
| position: 'absolute', |
| width: '40px', |
| height: '160px', |
| }, expectedProperties = { |
| margin: '10px 20px 30px 40px' |
| }; |
| |
| window.onload = function() { |
| for (var outerProperty in WritingModes) { |
| for (var innerProperty in WritingModes) { |
| outerProperties['-webkit-writing-mode'] = WritingModes[outerProperty]; |
| innerProperties['-webkit-writing-mode'] = WritingModes[innerProperty]; |
| innerProperties['margin'] = outerProperty === 'HORIZONTAL-TB' ? '10% 20% 30% 40%' : '5% 10% 15% 20%'; |
| testMargins(outerProperties, innerProperties, expectedProperties); |
| } |
| } |
| } |
| </script> |
| <script src='../../resources/js-test-post.js'></script> |
| </body> |
| </html> |