summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-contain/contain-layout-suppress-baseline-002.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-contain/contain-layout-suppress-baseline-002.html')
-rw-r--r--testing/web-platform/tests/css/css-contain/contain-layout-suppress-baseline-002.html71
1 files changed, 71 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-contain/contain-layout-suppress-baseline-002.html b/testing/web-platform/tests/css/css-contain/contain-layout-suppress-baseline-002.html
new file mode 100644
index 0000000000..a370386ede
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-suppress-baseline-002.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>CSS Test: 'contain: layout' should make elements behave as if they have no baseline</title>
+ <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
+ <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
+ <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#valdef-align-items-baseline">
+ <link rel="match" href="contain-layout-suppress-baseline-002-ref.html">
+ <style>
+ .flexBaselineCheck {
+ display: flex;
+ border: 1px solid black;
+ }
+ .flexBaselineCheck > * {
+ contain: layout;
+ border: 2px solid teal;
+ align-self: baseline;
+ margin: 2px;
+ }
+ canvas {
+ background: purple;
+ width: 20px;
+ height: 50px;
+ box-sizing: border-box;
+ }
+ </style>
+</head>
+<body>
+ <div class="flexBaselineCheck">
+ <!-- This canvas just exists to establish a precise, far-down baseline
+ alignment position: -->
+ <canvas></canvas>
+ <!-- "contain:layout" should force all the elements below to behave as if
+ they have no baseline. That means they all should *synthesize* a
+ baseline from their border-box edge, in order to participate in flex
+ item baseline alignment (to honor the outer flex container's
+ "align-items:baseline"). So, the expectation here is that all of these
+ elements' border-bottom edges should be aligned. -->
+ <button>btn</button>
+ <input type="button" value="i-btn">
+ <input type="submit" value="i-sub">
+ </div>
+
+ <!-- Same as above, but with different form controls:
+ (split into multiple flex containers so as not to be too wide): -->
+ <div class="flexBaselineCheck">
+ <canvas></canvas>
+ <input type="text" value="text">
+ <input type="number" value="0">
+ </div>
+
+ <div class="flexBaselineCheck">
+ <canvas></canvas>
+ <input type="date">
+ <input type="time">
+ </div>
+
+ <div class="flexBaselineCheck">
+ <canvas></canvas>
+ <input type="file">
+ <textarea>textarea</textarea>
+ </div>
+
+ <div class="flexBaselineCheck">
+ <canvas></canvas>
+ <select><option>dropdown</option></select>
+ <select multiple style="max-height:40px"><option>multi</option></select>
+ </div>
+</body>
+</html>