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.

  1. Can be enabled in Firefox by setting the about:config preference layout.css.sticky.enabled to true

  2. Enabled through the "experimental Web Platform features" flag

  3. Not supported on any table parts - See Firefox bug

  4. Supported on th elements, but not thead or tr - See Chrome bug

  5. Do not appear to support sticky table headers

  6. Supported on th elements, but not thead or tr - 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 prevent position: sticky from working in Safari

Resources

Data by caniuse.com
Licensed under the Creative Commons Attribution License v4.0.
https://caniuse.com/css-sticky