CSS position:sticky
Keeps elements positioned as "fixed" or "relative" depending on how it appears in the viewport. As a result the element is "stuck" when necessary while scrolling.
Spec | https://drafts.csswg.org/css-position/#sticky-pos |
---|---|
Status | W3C Working Draft |
IE | Edge | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
98 | |||||
95 | 97 | ||||
94 | 96 | TP | |||
11 | 95 | 93 | 95 | 15 | 80 (4) |
10 | 94 | 92 | 94 | 14.1 | 79 (4) |
9 | 93 | 91 | 93 | 14 | 78 (4) |
8 | 92 | 90 | 92 | 13.1 | 77 (4) |
Show all | |||||
7 | 91 | 89 | 91 | 13 | 76 (4) |
6 | 90 (4) | 88 | 90 (4) | 12.1 (*) | 75 (4) |
5.5 | 89 (4) | 87 | 89 (4) | 12 (*) | 74 (4) |
88 (4) | 86 | 88 (4) | 11.1 (*) | 73 (4) | |
87 (4) | 85 | 87 (4) | 11 (*) | 72 (4) | |
86 (4) | 84 | 86 (4) | 10.1 (*) | 71 (4) | |
85 (4) | 83 | 85 (4) | 10 (*) | 70 (4) | |
84 (4) | 82 | 84 (4) | 9.1 (*) | 69 (4) | |
83 (4) | 81 | 83 (4) | 9 (*) | 68 (4) | |
81 (4) | 80 | 81 (4) | 8 (*) | 67 (4) | |
80 (4) | 79 | 80 (4) | 7.1 (*) | 66 (4) | |
79 (4) | 78 | 79 (4) | 7 (5,*) | 65 (4) | |
18 (6) | 77 | 78 (4) | 6.1 (5,*) | 64 (4) | |
17 (6) | 76 | 77 (4) | 6 | 63 (4) | |
16 (6) | 75 | 76 (4) | 5.1 | 62 (4) | |
15 | 74 | 75 (4) | 5 | 60 (4) | |
14 | 73 | 74 (4) | 4 | 58 (4) | |
13 | 72 | 73 (4) | 3.2 | 57 (4) | |
12 | 71 | 72 (4) | 3.1 | 56 (4) | |
70 | 71 (4) | 55 (4) | |||
69 | 70 (4) | 54 (4) | |||
68 | 69 (4) | 53 (4) | |||
67 | 68 (4) | 52 (4) | |||
66 | 67 (4) | 51 (4) | |||
65 | 66 (4) | 50 (4) | |||
64 | 65 (4) | 49 (4) | |||
63 | 64 (4) | 48 (4) | |||
62 | 63 (4) | 47 (4) | |||
61 | 62 (4) | 46 (4) | |||
60 | 61 (4) | 45 (4) | |||
59 | 60 (4) | 44 (4) | |||
58 (3) | 59 (4) | 43 (4) | |||
57 (3) | 58 (4) | 42 (4) | |||
56 (3) | 57 (4) | 41 (2) | |||
55 (3) | 56 (4) | 40 (2) | |||
54 (3) | 55 (2) | 39 (2) | |||
53 (3) | 54 (2) | 38 | |||
52 (3) | 53 (2) | 37 | |||
51 (3) | 52 (2) | 36 | |||
50 (3) | 51 | 35 | |||
49 (3) | 50 | 34 | |||
48 (3) | 49 | 33 | |||
47 (3) | 48 | 32 | |||
46 (3) | 47 | 31 | |||
45 (3) | 46 | 30 | |||
44 (3) | 45 | 29 | |||
43 (3) | 44 | 28 | |||
42 (3) | 43 | 27 | |||
41 (3) | 42 | 26 | |||
40 (3) | 41 | 25 | |||
39 (3) | 40 | 24 | |||
38 (3) | 39 | 23 | |||
37 (3) | 38 | 22 | |||
36 (3) | 37 | 21 | |||
35 (3) | 36 (2) | 20 | |||
34 (3) | 35 (2) | 19 | |||
33 (3) | 34 (2) | 18 | |||
32 (3) | 33 (2) | 17 | |||
31 (1) | 32 (2) | 16 | |||
30 (1) | 31 (2) | 15 | |||
29 (1) | 30 (2) | 12.1 | |||
28 (1) | 29 (2) | 12 | |||
27 (1) | 28 (2) | 11.6 | |||
26 (1) | 27 (2) | 11.5 | |||
25 | 26 (2) | 11.1 | |||
24 | 25 (2) | 11 | |||
23 | 24 (2) | 10.6 | |||
22 | 23 (2) | 10.5 | |||
21 | 22 | 10.0-10.1 | |||
20 | 21 | 9.5-9.6 | |||
19 | 20 | 9 | |||
18 | 19 | ||||
17 | 18 | ||||
16 | 17 | ||||
15 | 16 | ||||
14 | 15 | ||||
13 | 14 | ||||
12 | 13 | ||||
11 | 12 | ||||
10 | 11 | ||||
9 | 10 | ||||
8 | 9 | ||||
7 | 8 | ||||
6 | 7 | ||||
5 | 6 | ||||
4 | 5 | ||||
3.6 | 4 | ||||
3.5 | |||||
3 | |||||
2 |
Safari on iOS | Opera Mini | Android Browser | Blackberry Browser | Opera Mobile | Android Chrome | Android Firefox | IE Mobile | Android UC Browser | Samsung Internet | QQ Browser | Baidu Browser | KaiOS Browser |
---|---|---|---|---|---|---|---|---|---|---|---|---|
15 | all | 94 | 10 | 64 | 94 | 92 | 11 | 12.12 (4) | 15.0 | 10.4 (4) | 7.12 | 2.5 (3) |
14.5-14.8 | 4.4.3-4.4.4 | 7 | 12.1 | 10 | 14.0 | |||||||
14.0-14.4 | 4.4 | 12 | 13.0 | |||||||||
13.4-13.7 | 4.2-4.3 | 11.5 | 12.0 | |||||||||
Show all | ||||||||||||
13.3 | 4.1 | 11.1 | 11.1-11.2 | |||||||||
13.2 | 4 | 11 | 10.1 | |||||||||
13.0-13.1 | 3 | 10 | 9.2 | |||||||||
12.2-12.5 (*) | 2.3 | 8.2 | ||||||||||
12.0-12.1 (*) | 2.2 | 7.2-7.4 | ||||||||||
11.3-11.4 (*) | 2.1 | 6.2-6.4 | ||||||||||
11.0-11.2 (*) | 5.0-5.4 | |||||||||||
10.3 (*) | 4 | |||||||||||
10.0-10.2 (*) | ||||||||||||
9.3 (*) | ||||||||||||
9.0-9.2 (*) | ||||||||||||
8.1-8.4 (*) | ||||||||||||
8 (*) | ||||||||||||
7.0-7.1 (5,*) | ||||||||||||
6.0-6.1 (5,*) | ||||||||||||
5.0-5.1 | ||||||||||||
4.2-4.3 | ||||||||||||
4.0-4.1 | ||||||||||||
3.2 |
Notes
Any ancestor between the sticky element and its user-scrollable container with overflow computed as anything but visible
/clip
will effectively prevent sticking behavior.
Can be enabled in Firefox by setting the about:config preference layout.css.sticky.enabled to true
Enabled through the "experimental Web Platform features" flag
Not supported on any
table
parts - See Firefox bugSupported on
th
elements, but notthead
ortr
- See Chrome bugDo not appear to support sticky table headers
Supported on
th
elements, but notthead
ortr
- See Edge bug
- * Partial support with prefix.
Bugs
Firefox 58 & below, Chrome 63 & below and Safari 7 & below do not appear to support sticky table headers.
A parent with overflow set to
auto
will preventposition: sticky
from working in Safari
Resources
- HTML5Rocks
- MDN Web Docs - CSS position
- WebPlatform Docs
- Polyfill
- Another polyfill
- geddski article: Examples and Gotchas
Data by caniuse.com
Licensed under the Creative Commons Attribution License v4.0.
https://caniuse.com/css-sticky