grid-area-valid.html (3834B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>CSS Grid Layout Test: parsing grid-area with valid values</title> 6 <link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> 7 <link rel="help" href="https://drafts.csswg.org/css-grid-1/#propdef-grid-area"> 8 <meta name="assert" content="grid-area supports the full grammar '<grid-line> [ / <grid-line> ]{0,3}'."> 9 <script src="/resources/testharness.js"></script> 10 <script src="/resources/testharnessreport.js"></script> 11 <script src="/css/support/parsing-testcommon.js"></script> 12 </head> 13 <body> 14 <script> 15 // auto 16 test_valid_value("grid-area", "auto"); 17 test_valid_value("grid-area", "auto / auto", "auto"); 18 test_valid_value("grid-area", "auto / auto / auto", "auto"); 19 test_valid_value("grid-area", "auto / auto / auto / auto", "auto"); 20 test_valid_value("grid-area", "AuTo", "auto"); 21 test_valid_value("grid-row", "auto"); 22 test_valid_value("grid-row", "auto/auto", "auto"); 23 test_valid_value("grid-column-end", "AuTo", "auto"); 24 25 // <custom-ident> 26 test_valid_value("grid-area", "--a"); 27 test_valid_value("grid-row", "-zπ"); 28 test_valid_value("grid-row", "-zπ/-zπ", "-zπ"); 29 test_valid_value("grid-row", "i / i", "i"); 30 test_valid_value("grid-row-start", "AZ"); 31 test_valid_value("grid-column-start", "-_π"); 32 test_valid_value("grid-row-end", "_9"); 33 34 35 // <integer> && <custom-ident>? 36 test_valid_value("grid-area", "1"); 37 test_valid_value("grid-area", "+90 -a-", "90 -a-"); 38 test_valid_value("grid-row", "az 2", "2 az"); 39 test_valid_value("grid-column", "9"); 40 test_valid_value("grid-column", "-19 zA"); 41 test_valid_value("grid-column", "-A0 33", "33 -A0"); 42 test_valid_value("grid-row-start", "-19"); 43 test_valid_value("grid-row-start", "9 -Z_"); 44 test_valid_value("grid-column-start", "+90", "90"); 45 test_valid_value("grid-column-start", "Z -44", "-44 Z"); 46 test_valid_value("grid-row-end", "1 -πA"); 47 test_valid_value("grid-column-end", "π_ +5", "5 π_"); 48 49 // span && [ <integer> || <custom-ident> ] 50 test_valid_value("grid-area", "span 2 i"); 51 test_valid_value("grid-area", "i 2 SpAn", "span 2 i"); 52 test_valid_value("grid-area", "span 1 i", "span i") 53 test_valid_value("grid-row", "span 2"); 54 test_valid_value("grid-column", "i SpAn", "span i"); 55 test_valid_value("grid-row-start", "span i"); 56 test_valid_value("grid-column-start", "SpAn i 2", "span 2 i"); 57 test_valid_value("grid-row-end", "2 i span", "span 2 i"); 58 test_valid_value("grid-column-end", "2 SpAn", "span 2"); 59 60 // <grid-line> [ / <grid-line> ]{0,3} 61 test_valid_value("grid-area", "auto / i"); 62 test_valid_value("grid-area", "auto / i / auto / i", "auto / i"); 63 test_valid_value("grid-area", "auto / i / auto / 2 i"); 64 test_valid_value("grid-area", "1 / i / auto / i", "1 / i"); 65 test_valid_value("grid-area", "1 / auto / auto / auto", "1"); 66 test_valid_value("grid-area", "1 / auto / i / auto", "1 / auto / i"); 67 test_valid_value("grid-area", "1 / j / i / k"); 68 test_valid_value("grid-area", "1 / auto / 2 / auto", "1 / auto / 2"); 69 test_valid_value("grid-area", "1 / i / 2 / auto"); 70 test_valid_value("grid-area", "i / i / auto / auto"); 71 test_valid_value("grid-area", "i / auto / i / auto", "i / auto"); 72 test_valid_value("grid-area", "auto / i / 2 j"); 73 test_valid_value("grid-area", "auto / i / 2 j / span 3 k"); 74 test_valid_value("grid-row", "auto / i"); 75 test_valid_value("grid-row", "i / auto"); 76 test_valid_value("grid-row", "2 i / auto", "2 i"); 77 test_valid_value("grid-row", "1 / auto", "1"); 78 test_valid_value("grid-column", "2 j / span 3 k"); 79 80 // https://github.com/w3c/csswg-drafts/issues/2858 81 // '\\31 st' in Blink, Firefox, EdgeHTML and Safari serialize invalid values. 82 test_valid_value("grid-column-end", "\\31st", ["\\31 st", "\\31st"]); 83 test_valid_value("grid-column-end", "\\31 st", ["\\31 st", "\\31st"]); 84 test_valid_value("grid-column", "\\31st / \\31 st", ["\\31 st", "\\31st"]); 85 86 </script> 87 </body> 88 </html>