summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-animations/responsive/column-width-001.html
blob: 7697eec324064dd6bd1fd75f16fdff5d3050315d (plain)
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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Animations: column-width animations respond to style changes</title>
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#cw">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
  .paused {
    animation-duration: 4s;
    animation-timing-function: linear;
    animation-delay: -2s;
    animation-play-state: paused;
  }
  #container {
    column-width: 40px;
    font-size: 10px;
  }
  #first {
    animation-name: first-anim;
  }
  #second {
    animation-name: second-anim;
  }
  #third {
    animation-name: third-anim;
  }
  @keyframes first-anim {
    from { column-width: 3em; }
    to { column-width: 5em; }
  }
  @keyframes second-anim {
    from { column-width: 40px; }
    to { column-width: calc(40px - 2em); }
  }
  @keyframes third-anim {
    from { column-width: 20px; }
    to { column-width: inherit; }
  }
</style>
</head>
<body>
<div id="container">
  <div id="first" class="paused"></div>
  <div id="second" class="paused"></div>
  <div id="third" class="paused"></div>
</div>
<script>
'use strict';
var container = document.getElementById('container');

test(() => {
  const first = document.getElementById('first');
  assert_equals(getComputedStyle(first).columnWidth, '40px');
  first.style.fontSize = '20px';
  assert_equals(getComputedStyle(first).columnWidth, '80px');
}, 'column-width responds to font-size changes');

test(() => {
  const second = document.getElementById('second');
  assert_equals(getComputedStyle(second).columnWidth, '30px');
  second.style.fontSize = '90px';
  assert_equals(getComputedStyle(second).columnWidth, '0px');
}, 'column-width clamps to 0px');

test(() => {
  const container = document.getElementById('container');
  const third = document.getElementById('third');
  assert_equals(getComputedStyle(third).columnWidth, '30px');
  container.style.columnWidth = 'auto';
  assert_equals(getComputedStyle(third).columnWidth, 'auto');
}, 'column-width responds to inherited changes');
</script>
</body>
</html>