File: align-self-016.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 (46 lines) | stat: -rw-r--r-- 1,538 bytes parent folder | download | duplicates (3)
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
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Flexbox: shrink-to-fit item in multi-line column container</title>
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11784">
<link rel="match" href="../reference/ref-filled-green-200px-square.html">
<meta assert="
  #item has `align-self: start`, which sizes it as `fit-content`.
  Therefore, we initially shrink-to-fit it into the container (100px),
  thus getting a cross size of 100px and a main size of 200px.
  However, we have another item which is 200px wide, so the flex line
  grows to that size.
  Once we know the final cross size of the line, we shrink-to-fit #item
  into the line (200px), thus getting a final cross size of 200px.
  Now both floats fit side by side into these 200px, so vertically they
  only need 100px, but the main size of #item remains as 200px.
">

<style>
#container {
  display: flex;
  flex-flow: column wrap;
  width: 100px;
  border-right: 100px solid red;
}
#item{
  align-self: start;
  background: linear-gradient(to bottom, red 50%, green 50%);
}
.float {
  float: left;
  width: 100px;
  height: 100px;
  background: green;
}
</style>

<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="container">
  <div id="item">
    <div class="float"></div>
    <div class="float"></div>
  </div>
  <div style="width: 200px"></div>
</div>