File: keyword-sizes-for-intrinsic-contributions.html

package info (click to toggle)
thunderbird 1%3A140.3.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 4,608,620 kB
  • sloc: cpp: 7,671,641; javascript: 5,901,032; ansic: 3,899,013; python: 1,413,270; xml: 653,997; asm: 462,284; java: 180,948; sh: 113,489; makefile: 20,460; perl: 14,288; objc: 13,059; yacc: 4,583; pascal: 3,352; lex: 1,720; ruby: 1,222; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (115 lines) | stat: -rw-r--r-- 6,545 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!DOCTYPE html>
<title>Keyword sizes for intrinsic contributions</title>
<link rel="author" title="Oriol Brufau" href="obrufau@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#sizing-values">
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#sizing-values">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-contribution">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/10721">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11006">
<meta assert="The various keyword sizes produce the right min/max-content contributions.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />

<style>
.wrapper {
  display: inline-block;
  vertical-align: top;
  margin-right: 200px;
}

.test {
  float: left;
  clear: both;
  margin: 5px;
  border: 3px solid;
  padding: 2px;
  font: 20px/1 Ahem;
}

/* Set the preferred size to small amount, to test that the min size works */
.test.min-width  > div { width:  0px }
.test.min-height > div { height: 0px }

/* Set the preferred size to big amount, to test that the max size works */
.test.max-width > div  { width:  200px }
.test.max-height > div { height: 200px }

/* stretch isn't widely supported, fall back to vendor-prefixed alternatives */
.width      > .stretch {      width: -moz-available;      width: -webkit-fill-available;      width: stretch }
.min-width  > .stretch {  min-width: -moz-available;  min-width: -webkit-fill-available;  min-width: stretch }
.max-width  > .stretch {  max-width: -moz-available;  max-width: -webkit-fill-available;  max-width: stretch }
.height     > .stretch {     height: -moz-available;     height: -webkit-fill-available;     height: stretch }
.min-height > .stretch { min-height: -moz-available; min-height: -webkit-fill-available; min-height: stretch }
.max-height > .stretch { max-height: -moz-available; max-height: -webkit-fill-available; max-height: stretch }
</style>
<div id="log"></div>

<!-- Preferred width -->
<div class="wrapper" style="width: 0px">
  <div class="test width" data-expected-width="70"><div style="width: min-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="70"><div style="width: fit-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="150"><div style="width: max-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="70"><div class="stretch">XXX XXX</div></div>
</div>
<div class="wrapper" style="width: 100px">
  <div class="test width" data-expected-width="70"><div style="width: min-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="90"><div style="width: fit-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="150"><div style="width: max-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="90"><div class="stretch">XXX XXX</div></div>
</div>
<div class="wrapper" style="width: 200px">
  <div class="test width" data-expected-width="70"><div style="width: min-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="150"><div style="width: fit-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="150"><div style="width: max-content">XXX XXX</div></div>
  <div class="test width" data-expected-width="150"><div class="stretch">XXX XXX</div></div>
</div>

<hr>

<!-- Minimum width -->
<div class="wrapper" style="width: 0px">
  <div class="test min-width" data-expected-width="70"><div style="min-width: min-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="70"><div style="min-width: fit-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="150"><div style="min-width: max-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="10"><div class="stretch">XXX XXX</div></div>
</div>
<div class="wrapper" style="width: 100px">
  <div class="test min-width" data-expected-width="70"><div style="min-width: min-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="90"><div style="min-width: fit-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="150"><div style="min-width: max-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="10"><div class="stretch">XXX XXX</div></div>
</div>
<div class="wrapper" style="width: 200px">
  <div class="test min-width" data-expected-width="70"><div style="min-width: min-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="150"><div style="min-width: fit-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="150"><div style="min-width: max-content">XXX XXX</div></div>
  <div class="test min-width" data-expected-width="10"><div class="stretch">XXX XXX</div></div>
</div>

<hr>

<!-- Maximum width -->
<div class="wrapper" style="width: 0px">
  <div class="test max-width" data-expected-width="70"><div style="max-width: min-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="70"><div style="max-width: fit-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="150"><div style="max-width: max-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="210"><div class="stretch">XXX XXX</div></div>
</div>
<div class="wrapper" style="width: 100px">
  <div class="test max-width" data-expected-width="70"><div style="max-width: min-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="90"><div style="max-width: fit-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="150"><div style="max-width: max-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="210"><div class="stretch">XXX XXX</div></div>
</div>
<div class="wrapper" style="width: 200px">
  <div class="test max-width" data-expected-width="70"><div style="max-width: min-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="150"><div style="max-width: fit-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="150"><div style="max-width: max-content">XXX XXX</div></div>
  <div class="test max-width" data-expected-width="210"><div class="stretch">XXX XXX</div></div>
</div>

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
document.fonts.ready.then(() => checkLayout(".test"));
</script>