| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <style> | |
| .outer { | |
| width: 500px; | |
| height: 300px; | |
| border: 1px solid black; | |
| } | |
| .testbox { | |
| color: white; | |
| font: 24px 'Lucida Grande'; | |
| background: green; | |
| border: 1em solid black; | |
| } | |
| #fixed { | |
| line-height: 30px; | |
| width: 150px; | |
| height: 100px; | |
| margin-top: 15px; | |
| margin-right: 30px; | |
| margin-bottom: 20px; | |
| margin-left: 10px; | |
| padding: 20px; | |
| } | |
| #percents { | |
| line-height: 150%; | |
| width: 50%; | |
| height: 25%; | |
| margin-top: 10%; | |
| margin-right: 5%; | |
| margin-bottom: 10%; | |
| margin-left: 20%; | |
| padding: 5%; | |
| } | |
| #ems { | |
| line-height: 24px; | |
| width: 10em; | |
| height: 5em; | |
| margin-top: 1em; | |
| margin-right: .5em; | |
| margin-bottom: 1.5em; | |
| margin-left: 2em; | |
| padding: .75em; | |
| } | |
| #auto { | |
| line-height: 30px; | |
| width: 200px; | |
| height: auto; | |
| margin: 0px auto; | |
| padding: auto; | |
| } | |
| #mixed { | |
| line-height: 200%; | |
| width: 30%; | |
| height: 20%; | |
| margin-top: 3em; | |
| /* margin-right/margin-bottom omitted */ | |
| margin-left: auto; | |
| padding-top: 40px; | |
| padding-right: 10%; | |
| padding-bottom: 1em; | |
| padding-left: auto; | |
| } | |
| </style> | |
| <script> | |
| var resolvedValueStyles = [ | |
| 'line-height', | |
| 'width', | |
| 'height', | |
| 'margin-top', | |
| 'margin-right', | |
| 'margin-bottom', | |
| 'margin-left', | |
| 'padding-top', | |
| 'padding-right', | |
| 'padding-bottom', | |
| 'padding-left' | |
| ]; | |
| var displayValues = [ | |
| 'block', | |
| 'inline', | |
| 'inline-block', | |
| 'none' | |
| ]; | |
| function log(msg) { | |
| document.getElementById('console').appendChild(document.createTextNode(msg + '\n')); | |
| } | |
| function test(id) { | |
| var div = document.getElementById(id), | |
| prop, displayValue, style, computedStyle; | |
| for (var i = 0; i < displayValues.length; i++) { | |
| div.style.display = displayValue = displayValues[i]; | |
| computedStyle = window.getComputedStyle(div, null); | |
| log('Resolved values for element "' + id + '" with display "' + displayValue + '":'); | |
| for (var j = 0; j < resolvedValueStyles.length; j++) { | |
| style = resolvedValueStyles[j]; | |
| log(style + ': ' + computedStyle.getPropertyValue(style)); | |
| } | |
| log(''); | |
| } | |
| div.style.display = ''; | |
| log(''); | |
| } | |
| function runTests() { | |
| if (window.testRunner) | |
| testRunner.dumpAsText(); | |
| test('fixed'); | |
| test('percents'); | |
| test('ems'); | |
| test('auto'); | |
| test('mixed'); | |
| } | |
| </script> | |
| </head> | |
| <body onload="runTests();"> | |
| <p> | |
| Test calling getPropertyValue on computed styles that return "resolved" values.<br /> | |
| See <a href="http://dev.w3.org/csswg/cssom/#resolved-values">http://dev.w3.org/csswg/cssom/#resolved-values</a> for more information. | |
| </p> | |
| <pre id="console"></pre> | |
| <div class="outer"> | |
| <div class="testbox" id="fixed">Fixed</div> | |
| </div> | |
| <div class="outer"> | |
| <div class="testbox" id="percents">Percents</div> | |
| </div> | |
| <div class="outer"> | |
| <div class="testbox" id="ems">EMs</div> | |
| </div> | |
| <div class="outer"> | |
| <div class="testbox" id="auto">Auto</div> | |
| </div> | |
| <div class="outer"> | |
| <div class="testbox" id="mixed">Mixed</div> | |
| </div> | |
| </body> | |
| </html> |