<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Display: first-line and first-letter pseudo-elements</title>
<link rel="help" href="https://www.w3.org/TR/css-display-3/#placement">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
  #t1::first-letter { float: left; display: flex; font-size: 30px }
  #t2::first-letter { float: left; font-size: 30px }
  #t3::first-letter { display: flex; font-size: 30px }
  #t4::first-letter { font-size: 30px }
  #t5::first-line { float: left; display: flex; font-size: 30px }
  #t6::first-line { float: left; font-size: 30px }
  #t7::first-line { display: flex; font-size: 30px }
  #t8::first-line { font-size: 30px }
</style>
<div id="t1">First letter is float and flex.</div>
<div id="t2">First letter is float but not flex.</div>
<div id="t3">First letter is flex but not float.</div>
<div id="t4">First letter not float or flex.</div>
<div id="t5">First line is float and flex.</div>
<div id="t6">First line is float but not flex.</div>
<div id="t7">First line is flex but not float.</div>
<div id="t8">First line is not float or flex.</div>
<script>
  function getFirstLetterDisplayFor(id) {
    return window.getComputedStyle(document.getElementById(id), "::first-letter").display;
  }
  function getFirstLineDisplayFor(id) {
    return window.getComputedStyle(document.getElementById(id), "::first-line").display;
  }
  test(function() {
    assert_equals(getFirstLetterDisplayFor("t1"), "block");
    assert_equals(getFirstLetterDisplayFor("t2"), "block");
    assert_equals(getFirstLetterDisplayFor("t3"), "inline");
    assert_equals(getFirstLetterDisplayFor("t4"), "inline");
    assert_equals(getFirstLineDisplayFor("t5"), "inline");
    assert_equals(getFirstLineDisplayFor("t6"), "inline");
    assert_equals(getFirstLineDisplayFor("t7"), "inline");
    assert_equals(getFirstLineDisplayFor("t8"), "inline");
  }, "display of first-letter and first-line");
</script>
