tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

font-size-computed.html (2522B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta charset="utf-8">
      5 <title>CSS Fonts Module Level 4: getComputedStyle().fontSize</title>
      6 <link rel="help" href="https://drafts.csswg.org/css-fonts-4/#font-size-prop">
      7 <meta name="assert" content="font-size computed value is an absolute length.">
      8 <script src="/resources/testharness.js"></script>
      9 <script src="/resources/testharnessreport.js"></script>
     10 <script src="/css/support/computed-testcommon.js"></script>
     11 <style>
     12  #container {
     13    font-size: 40px;
     14  }
     15 </style>
     16 </head>
     17 <body>
     18 <div id="container">
     19  <div id="target"></div>
     20 </div>
     21 <font id="reference"></font>
     22 <script>
     23 function test_relative_size(first, second) {
     24  test(() => {
     25    const target = document.getElementById('target');
     26    target.style.fontSize = first;
     27    const firstResult = Number(getComputedStyle(target).fontSize.replace('px', ''));
     28    target.style.fontSize = second;
     29    const secondResult = Number(getComputedStyle(target).fontSize.replace('px', ''));
     30    assert_less_than_equal(firstResult, secondResult);
     31  }, first + ' <= ' + second);
     32 }
     33 
     34 test_relative_size('xx-small', 'x-small');
     35 test_relative_size('x-small', 'small');
     36 test_relative_size('small', 'medium');
     37 test_relative_size('medium', 'large');
     38 test_relative_size('large', 'x-large');
     39 test_relative_size('x-large', 'xx-large');
     40 // Added in Fonts level 4: https://github.com/w3c/csswg-drafts/issues/3907
     41 test_relative_size('xx-large', 'xxx-large');
     42 
     43 // <relative-size>
     44 test_relative_size('inherit', 'larger');
     45 test_relative_size('smaller', 'inherit');
     46 
     47 // <length-percentage>
     48 test_computed_value('font-size', '10px');
     49 test_computed_value('font-size', '20%', '8px');
     50 test_computed_value('font-size', 'calc(30% - 40px)', '0px');
     51 test_computed_value('font-size', 'calc(30% + 40px)', '52px');
     52 test_computed_value('font-size', 'calc(10px - 0.5em)', '0px');
     53 test_computed_value('font-size', 'calc(10px + 0.5em)', '30px');
     54 
     55 function test_font_size(attribute, keyword) {
     56  test(() => {
     57    const reference = document.getElementById('reference');
     58    reference.setAttribute('size', attribute);
     59    const target = document.getElementById('target');
     60    target.style.fontSize = keyword;
     61    assert_equals(getComputedStyle(target).fontSize, getComputedStyle(reference).fontSize);
     62  }, '<font size="' + attribute + '"> is font-size: ' + keyword);
     63 }
     64 
     65 test_font_size('2', 'small');
     66 test_font_size('3', 'medium');
     67 test_font_size('4', 'large');
     68 test_font_size('5', 'x-large');
     69 test_font_size('6', 'xx-large');
     70 test_font_size('7', 'xxx-large');
     71 </script>
     72 </body>
     73 </html>