| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>CSS Logical Properties and Values: getComputedStyle().borderBlockWidth</title> |
| <link rel="help" href="https://drafts.csswg.org/css-logical/#propdef-border-block-width"> |
| <meta name="assert" content="border-block-width is absolute length; zero if the border block style is none or hidden."> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/css/support/computed-testcommon.js"></script> |
| </head> |
| <body> |
| <div id="box"></div> |
| <div id="target"></div> |
| <style> |
| #box { |
| border-style: dotted; /* Avoid border-*-width computed style 0 */ |
| border-top-width: thin; |
| border-right-width: medium; |
| border-bottom-width: thick; |
| } |
| #target { |
| font-size: 40px; |
| border-block-style: dotted; /* Avoid border-block-*-width computed style 0 */ |
| } |
| </style> |
| <script> |
| 'use strict'; |
| const box = document.getElementById('box'); |
| const thinWidth = getComputedStyle(box).borderTopWidth; |
| const mediumWidth = getComputedStyle(box).borderRightWidth; |
| const thickWidth = getComputedStyle(box).borderBottomWidth; |
| |
| test_computed_value("border-block-start-width", "calc(10px + 0.5em)", "30px"); |
| test_computed_value("border-block-start-width", "calc(10px - 0.5em)", "0px"); |
| test_computed_value("border-block-start-width", "thin", thinWidth); |
| test_computed_value("border-block-start-width", "medium", mediumWidth); |
| |
| test_computed_value("border-block-end-width", "calc(10px + 0.5em)", "30px"); |
| test_computed_value("border-block-end-width", "calc(10px - 0.5em)", "0px"); |
| test_computed_value("border-block-end-width", "thick", thickWidth); |
| |
| test_computed_value("border-block-width", "10px"); |
| test_computed_value("border-block-width", "10px 20px"); |
| test_computed_value("border-block-width", "10px 10px", "10px"); |
| test(() => { |
| box.style.borderBlockStartWidth = '10px'; |
| box.style.borderBlockEndWidth = '10px'; |
| |
| box.style.borderBlockStartStyle = 'groove'; |
| box.style.borderBlockEndStyle = 'solid'; |
| assert_equals(getComputedStyle(box).borderBlockStartWidth, '10px'); |
| assert_equals(getComputedStyle(box).borderBlockEndWidth, '10px'); |
| assert_equals(getComputedStyle(box).borderBlockWidth, '10px'); |
| |
| box.style.borderBlockStartStyle = 'hidden'; |
| box.style.borderBlockEndStyle = 'dashed'; |
| assert_equals(getComputedStyle(box).borderBlockStartWidth, '0px'); |
| assert_equals(getComputedStyle(box).borderBlockEndWidth, '10px'); |
| assert_equals(getComputedStyle(box).borderBlockWidth, '0px 10px'); |
| |
| box.style.borderBlockStartStyle = 'inset'; |
| box.style.borderBlockEndStyle = 'none'; |
| assert_equals(getComputedStyle(box).borderBlockStartWidth, '10px'); |
| assert_equals(getComputedStyle(box).borderBlockEndWidth, '0px'); |
| assert_equals(getComputedStyle(box).borderBlockWidth, '10px 0px'); |
| |
| box.style.borderBlockStartStyle = 'none'; |
| box.style.borderBlockEndStyle = 'hidden'; |
| assert_equals(getComputedStyle(box).borderBlockStartWidth, '0px'); |
| assert_equals(getComputedStyle(box).borderBlockEndWidth, '0px'); |
| assert_equals(getComputedStyle(box).borderBlockWidth, '0px'); |
| }, 'width is zero if the border block style is none or hidden'); |
| </script> |
| </body> |
| </html> |