<!DOCTYPE html>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase to ensure we handle ::before and ::after pseudo-elements on a
     flex container, specifically when they've got display:table-row or
     table-cell.

     The table-row / table-cell 'display' values should be blockified, and the
     pseudo-elements should be treated as flex items. (They should not get
     wrapped in an anonymous table box.) -->
<html>
<head>
  <title>CSS Test: Testing that generated content nodes with table-part display types are wrapped with an anonymous table, which forms a flex item</title>
  <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-items">
  <link rel="match" href="flexbox-with-pseudo-elements-003-ref.html">
  <meta charset="utf-8">
  <style>
    .flexContainer {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      height: 50px;
      width: 300px;
      margin-bottom: 2px;
      background: lightgray;
    }
    div.withBefore::before {
      display: table-row;
      content: 'b';
      background: yellow;
      /* If these "align-self" & "order" properties impact the rendering (as
         they should), that verifies we're being treated as a flex item. */
      align-self: center;
      order: 1;
    }
    div.withAfter::after {
      display: table-cell;
      content: 'a';
      background: lightblue;
      /* If these "align-self" & "order" properties impact the rendering (as
         they should), that verifies we're being treated as a flex item. */
      align-self: center;
      order: -1;
    }
  </style>
</head>
<body>
  <div class="flexContainer withBefore">
    x
    <div>y</div>
    z
  </div>
  <div class="flexContainer withAfter">
    x
    <div>y</div>
    z
  </div>
  <div class="flexContainer withBefore withAfter">
    x
    <div>y</div>
    z
  </div>
</body>
</html>
