<?xml version="1.0" encoding="UTF-8"?>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with percent-valued padding and/or margin on flex items.
     The spec allows these to be resolved against the flex container's
     inline size (regardless of which axis the percent padding/margin is in).
-->
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>CSS Test: Testing percent-valued padding and margin on flex items</title>
    <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
    <link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#item-margins"/>
    <link rel="match" href="flexbox-mbp-horiz-004-ref.xhtml"/>
    <style>
      div.flexbox {
        width: 200px;
        display: flex;
        margin-bottom: 2px;
        border: 1px dotted black;
      }
      div.height50 { height: 50px; }

      .marginA  { margin: 10%  8%  6%  4%; }
      .marginB  { margin:  8% 10% 12% 14%; }
      .paddingA { padding: 8%  6%  4%  2%; }
      .paddingB { padding: 6%  8% 10% 12%; }

      div.child1 {
        flex: none;
        width: 10px;
        height: 10px;
        background: lightgreen;
      }
      div.child2 {
        flex: none;
        width: 10px;
        height: 10px;
        background: purple;
      }

      div.filler {
        /* Filler-div to fill up content-box and make padding easier to see. */
        height: 10px;
        width: 100%;
        background: lightgrey;
      }

    </style>
  </head>
  <body>
    <!-- Flex container is auto-height - this shouldn't impact percent
         margin/padding resolution, since they resolve against container's
         inline-size, i.e. its width in this case. -->
    <div class="flexbox"
         ><div class="child1 paddingA"><div class="filler"/></div
         ><div class="child2 paddingB"><div class="filler"/></div
         ><div class="child1 marginA"></div
         ><div class="child2 marginB"></div
    ></div>

    <!-- Flex container has height: 50px - again, this shouldn't impact percent
         margin/padding resolution, since they resolve against container's
         inline-size, i.e. its width in this case. -->
    <div class="flexbox height50"
         ><div class="child1 paddingA"><div class="filler"/></div
         ><div class="child2 paddingB"><div class="filler"/></div
         ><div class="child1 marginA"></div
         ><div class="child2 marginB"></div
    ></div>

    <!-- ...and now with align-items: flex-end, so we can see the margin-bottom
         in action -->
    <div class="flexbox height50" style="align-items: flex-end"
         ><div class="child1 paddingA"><div class="filler"/></div
         ><div class="child2 paddingB"><div class="filler"/></div
         ><div class="child1 marginA"></div
         ><div class="child2 marginB"></div
    ></div>

    <!-- ...and finally, with margin and padding applied to the same items -->
    <div class="flexbox height50"
         ><div class="child1 paddingA marginA"><div class="filler"/></div
         ><div class="child2 paddingB marginB"><div class="filler"/></div
    ></div>
  </body>
</html>
