File: box-sizing-001.html

package info (click to toggle)
thunderbird 1%3A143.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 4,703,968 kB
  • sloc: cpp: 7,770,492; javascript: 5,943,842; ansic: 3,918,754; python: 1,418,263; xml: 653,354; asm: 474,045; java: 183,079; sh: 111,238; makefile: 20,410; perl: 14,359; objc: 13,059; yacc: 4,583; pascal: 3,405; lex: 1,720; ruby: 999; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 69; csh: 10
file content (108 lines) | stat: -rw-r--r-- 3,904 bytes parent folder | download | duplicates (24)
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
<!DOCTYPE html>
<html>
<title>CSS Flexbox: box-sizing</title>
<link href="support/flexbox.css" rel="stylesheet">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-flow-property">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#box-sizing">
<meta name="assert" content="This test checks the interactions between the flex layout mode and the two possible values for the box-sizing property: border-box and content-box" />

<style>
.flexbox {
    border: 2px solid orange;
}
.h3 {
    height: 300px;
}
.w3 {
    width: 300px;
}
.h4 {
    height: 400px;
}
.w4 {
    width: 400px;
}
.border-box, .flexbox > div {
    box-sizing: border-box;
    height: 100px;
    width: 100px;
    border: 2px solid lightblue;
    border-top-width: 4px;
    padding: 3px;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<body>
<div id=log></div>

All blue boxes are 100x100px with box-sizing: border-box and 2px border (4px border-top), we expect offsetWidth/Height to be <b>100x100</b>

<h3>flex-flow: default, orange box has width: 300px</h3>
<div class="flexbox" style="width: 300px">
    <div></div><div></div><div></div>
</div>

<h3>flex-flow: default, orange box has width: 400px</h3>
<div class="flexbox" style="width: 400px">
    <div></div><div></div><div></div>
</div>

<h3>flex-flow: default, orange box has width: auto</h3>
<div class="flexbox">
    <div></div><div></div><div></div>
</div>

<h3>flex-flow: default, orange box has width: auto, flex-box has box-sizing: border-box</h3>
<div class="flexbox border-box">
    <div data-expected-width=30></div>
    <div data-expected-width=30></div>
    <div data-expected-width=30></div>
</div>

<h3>flex-flow: column, red box has height: 300px</h3>
<div class="flexbox column" style="height: 300px">
    <div></div><div></div><div></div>
</div>

<h3>flex-flow: column, red box has height: 400px</h3>
<div class="flexbox column" style="height: 400px">
    <div></div><div></div><div></div>
</div>

<h3>flex-flow: column, red box has height: auto</h3>
<div class="flexbox column">
    <div></div><div></div><div></div>
</div>

<h3>flex-box has box-sizing: border-box and flex-wrap: wrap;</h3>
<div class="flexbox column wrap" style="box-sizing: border-box; border: 2px solid lightblue; padding: 3px; height: 200px; width: 100px; position: relative" data-expected-width=100 data-expected-height=200>
    <div data-offset-x=3></div><div data-offset-x=103></div><div data-offset-x=203></div>
</div>

<h3>flex-box has box-sizing: default and flex-wrap: wrap;</h3>
<div class="flexbox column wrap" style="border: 2px solid lightblue; padding: 3px; height: 200px; width: 100px; position: relative" data-expected-width=110 data-expected-height=210>
    <div data-offset-x=3></div><div data-offset-x=3></div><div data-offset-x=103></div>
</div>

<h3>flex-flow: column, flex-box has box-sizing: border-box, flex items have flex: 1</h3>
<div class="flexbox column" style="box-sizing: border-box; border: 2px solid lightblue; padding: 3px; height: 343px; width: 100px;" data-expected-width=100 data-expected-height=343>
    <div style="flex: 1;" data-expected-height=111></div>
    <div style="flex: 1;" data-expected-height=111></div>
    <div style="flex: 1;" data-expected-height=111></div>
</div>

<script>
    function addExpectedSizes(flexItem) {
        if (!flexItem.hasAttribute('data-expected-height'))
            flexItem.setAttribute('data-expected-height', 100);
        if (!flexItem.hasAttribute('data-expected-width'))
            flexItem.setAttribute('data-expected-width', 100);
    }
    [].forEach.call(document.querySelectorAll(".flexbox > div"), addExpectedSizes);
    [].forEach.call(document.querySelectorAll(".border-box"), addExpectedSizes);
    checkLayout('.flexbox');
</script>
</body>
</html>