CSS Flexible Box Layout Module

Method of positioning elements in horizontal or vertical stacks. Support includes all properties prefixed with flex, as well as display: flex, display: inline-flex, align-content, align-items, align-self, justify-content and order.

Spec https://www.w3.org/TR/css3-flexbox/
Status W3C Candidate Recommendation
IE Edge Firefox Chrome Safari Opera
      98    
    95 97    
    94 96 TP  
11 (4) 95 93 95 15 80
10 (2,4,*) 94 92 94 14.1 79
9 93 91 93 14 78
8 92 90 92 13.1 77
Show all
7 91 89 91 13 76
6 90 88 90 12.1 75
5.5 89 87 89 12 74
  88 86 88 11.1 73
  87 85 87 11 72
  86 84 86 10.1 71
  85 83 85 10 70
  84 82 84 9.1 69
  83 81 83 9 68
  81 80 81 8 (*) 67
  80 79 80 7.1 (*) 66
  79 78 79 7 (*) 65
  18 77 78 6.1 (*) 64
  17 76 77 6 (1,*) 63
  16 75 76 5.1 (1,*) 62
  15 74 75 5 (1,*) 60
  14 73 74 4 (1,*) 58
  13 72 73 3.2 (1,*) 57
  12 71 72 3.1 (1,*) 56
    70 71   55
    69 70   54
    68 69   53
    67 68   52
    66 67   51
    65 66   50
    64 65   49
    63 64   48
    62 63   47
    61 62   46
    60 61   45
    59 60   44
    58 59   43
    57 58   42
    56 57   41
    55 56   40
    54 55   39
    53 54   38
    52 53   37
    51 52   36
    50 51   35
    49 50   34
    48 49   33
    47 48   32
    46 47   31
    45 46   30
    44 45   29
    43 44   28
    42 43   27
    41 42   26
    40 41   25
    39 40   24
    38 39   23
    37 38   22
    36 37   21
    35 36   20
    34 35   19
    33 34   18
    32 33   17
    31 32   16 (*)
    30 31   15 (*)
    29 30   12.1
    28 29   12
    27 (3) 28 (*)   11.6
    26 (3) 27 (*)   11.5
    25 (3) 26 (*)   11.1
    24 (3) 25 (*)   11
    23 (3) 24 (*)   10.6
    22 (3) 23 (*)   10.5
    21 (1,*) 22 (*)   10.0-10.1
    20 (1,*) 21 (*)   9.5-9.6
    19 (1,*) 20 (1,*)   9
    18 (1,*) 19 (1,*)    
    17 (1,*) 18 (1,*)    
    16 (1,*) 17 (1,*)    
    15 (1,*) 16 (1,*)    
    14 (1,*) 15 (1,*)    
    13 (1,*) 14 (1,*)    
    12 (1,*) 13 (1,*)    
    11 (1,*) 12 (1,*)    
    10 (1,*) 11 (1,*)    
    9 (1,*) 10 (1,*)    
    8 (1,*) 9 (1,*)    
    7 (1,*) 8 (1,*)    
    6 (1,*) 7 (1,*)    
    5 (1,*) 6 (1,*)    
    4 (1,*) 5 (1,*)    
    3.6 (1,*) 4 (1,*)    
    3.5 (1,*)      
    3 (1,*)      
    2 (1,*)      
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 15.0 10.4 7.12 2.5
14.5-14.8   4.4.3-4.4.4 7 (1,*) 12.1     10 (2,*)   14.0      
14.0-14.4   4.4   12         13.0      
13.4-13.7   4.2-4.3 (1,*)   11.5         12.0      
Show all
13.3   4.1 (1,*)   11.1         11.1-11.2      
13.2   4 (1,*)   11         10.1      
13.0-13.1   3 (1,*)   10         9.2      
12.2-12.5   2.3 (1,*)             8.2      
12.0-12.1   2.2 (1,*)             7.2-7.4      
11.3-11.4   2.1 (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 (*)                        
6.0-6.1 (1,*)                        
5.0-5.1 (1,*)                        
4.2-4.3 (1,*)                        
4.0-4.1 (1,*)                        
3.2 (1,*)                        

Notes

Most partial support refers to supporting an older version of the specification or an older syntax.

  1. Only supports the old flexbox specification and does not support wrapping.

  2. Only supports the 2012 syntax

  3. Does not support flex-wrap, flex-flow or align-content properties

  4. Partial support is due to large amount of bugs present (see known issues)

* Partial support with prefix.

Bugs

  • Flexbugs: community-curated list of flexbox issues and cross-browser workarounds for them

  • In IE10 the default value for flex is 0 0 auto rather than 0 1 auto as defined in the latest spec.

  • In Safari 10.1 and below, the height of (non flex) children are not recognized in percentages. However other browsers recognize and scale the children based on percentage heights. Fixed in all versions > 10.1 (See bug) The bug also appeared in Chrome but was fixed in Chrome 51

  • Firefox 51 and below does not support Flexbox in button elements. Fixed in version 52.

  • IE 11 does not vertically align items correctly when min-height is used see bug

  • In IE10 and IE11, containers with display: flex and flex-direction: column will not properly calculate their flexed childrens' sizes if the container has min-height but no explicit height property. See bug.

  • IE 11 requires a unit to be added to the third argument, the flex-basis property see MSFT documentation

  • Safari 10 and below uses min/max width/height declarations for actually rendering the size of flex items, but it ignores those values when calculating how many items should be on a single line of a multi-line flex container. Instead, it simply uses the item's flex-basis value, or its width if the flex basis is set to auto. see bug. Fixed in all versions > 10.

  • The space-evenly value of the justify-content property, as described in the CSS Box Alignment Module Level 3 is only supported by some browsers.

Resources

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