Why doesn't percentage padding / margin work on flex items in Firefox and Edge?

后端 未结 2 1448
星月不相逢
星月不相逢 2020-11-22 01:18

I want to have a square div inside a flexbox. So I use:



        
2条回答
  •  广开言路
    2020-11-22 01:34

    2018 Update

    The flexbox specification has been updated.

    4.2. Flex Item Margins and Paddings

    Percentage margins and paddings on flex items, like those on block boxes, are resolved against the inline size of their containing block, e.g. left/right/top/bottom percentages all resolve against their containing block’s width in horizontal writing modes.


    Original Answer - applies to FF and Edge versions released before 2018

    From the flexbox specification:

    Authors should avoid using percentages in paddings or margins on flex items entirely, as they will get different behavior in different browsers.

    Here's some more:

    4.2. Flex Item Margins and Paddings

    Percentage margins and paddings on flex items can be resolved against either:

    • their own axis (left/right percentages resolve against width, top/bottom resolve against height), or,
    • the inline axis (left/right/top/bottom percentages all resolve against width)

    A User Agent must choose one of these two behaviors.

    Note: This variance sucks, but it accurately captures the current state of the world (no consensus among implementations, and no consensus within the CSSWG). It is the CSSWG’s intention that browsers will converge on one of the behaviors, at which time the spec will be amended.

提交回复
热议问题