Status: FAIL | Duration: 18ms | Subtests: 0/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-contain/contain-size-block-003.html
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>CSS Test: 'contain: size' on 'overflow:auto' block elements should cause them to be sized as if they had no contents</title> <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"> <link rel="author" title="Morgan Rae Reschenberg" href="mailto:mreschenberg@berkeley.edu"> <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-size"> <link rel="match" href="contain-size-block-003-ref.html"> <style> .contain { contain: size; overflow: auto; border: 2px solid green; } .innerContents { color: transparent; height: 100px; width: 100px; } .minHeight { min-height: 60px; background: lightblue; } .height { height: 60px; background: lightblue; } .maxWidth { max-width: 60px; } .width { width: 60px; } .floatLBasic { float: left; } .floatLWidth { float: left; width: 60px; } .flexBaselineCheck { display: flex; align-items: baseline; } </style> </head> <body> <!-- NOTE: In all cases below, the expectation is that the size-contained element should be sized as if it had no contents (while honoring whatever sizing properties are provided). --> <!--CSS Test: A size-contained scrollable block with no specified size.--> <div class="contain"><div class="innerContents">inner</div></div> <br> <!--CSS Test: A size-contained scrollable block with specified min-height --> <div class="contain minHeight"><div class="innerContents">inner</div></div> <br> <!--CSS Test: A size-contained scrollable block with specified height --> <div class="contain height"><div class="innerContents">inner</div></div> <br> <!--CSS Test: A size-contained scrollable block with specified max-width --> <div class="contain maxWidth"><div class="innerContents">inner</div></div> <br> <!--CSS Test: A size-contained scrollable block with specified width --> <div class="contain width"><div class="innerContents">inner</div></div> <br> <!--CSS Test: A size-contained floated scrollable block with auto size --> <div class="contain floatLBasic"><div class="innerContents">inner</div></div> <br> <!--CSS Test: A size-contained floated scrollable block with specified width --> <div class="contain floatLWidth"><div class="innerContents">inner</div></div> <br> <!--CSS Test: A size-contained scrollable block in a baseline-aligning flex container: should size as if it's empty, but still baseline-align using its contents' baseline --> <div class="flexBaselineCheck"> outside before <div class="contain"> <div class="innerContents">inner</div> </div> outside after </div> </body> </html>
/css/css-contain/contain-size-block-003-ref.html
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>CSS Reftest Reference</title> <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"> <link rel="author" title="Morgan Rae Reschenberg" href="mailto:mreschenberg@berkeley.edu"> <style> .basic { overflow: auto; position: relative; border: 2px solid green; } .height-ref { height: 60px; background: lightblue; } .width-ref { width: 60px; } .floatLBasic-ref { float: left; } .floatLWidth-ref { float: left; width: 60px; } .flexBaselineCheck { display: flex; align-items: baseline; } .innerContents { color: transparent; height: 100px; width: 100px; position: absolute; } .zeroHeightContents { color: transparent; height: 0px; width: 0px; } </style> </head> <body> <!-- NOTE: In the reference-case scenarios here, we use the same DOM as in the testcase, and we simply use 'position: absolute' on the descendants wherever the testcase has 'contain: size' on the container. This produces an accurate reference rendering, because out-of-flow content doesn't contribute to the container's sizing, but does create scrollable overflow (i.e. it produces scrollbars of the appropriate size for the amount of overflow). --> <div class="basic"><div class="innerContents">inner</div></div> <br> <div class="basic height-ref"><div class="innerContents">inner</div></div> <br> <div class="basic height-ref"><div class="innerContents">inner</div></div> <br> <div class="basic width-ref"><div class="innerContents">inner</div></div> <br> <div class="basic width-ref"><div class="innerContents">inner</div></div> <br> <div class="basic floatLBasic-ref"><div class="innerContents">inner</div></div> <br> <div class="basic floatLWidth-ref"><div class="innerContents">inner</div></div> <br> <div class="flexBaselineCheck"> outside before <div class="basic"> <!-- We use the out-of-flow "innerContents" to create the correct amount of scrollable overflow to match the testcase, and we use the smaller in-flow "zeroHeightContents" to provide a baseline that we can use to verify the testcase's baseline alignment position. --> <div class="innerContents">inner</div> <div class="zeroHeightContents">i</div> </div> outside after </div> </body> </html>