display:contents是一个比较陌生的属性。虽然属于display,基本上是最常用的CSS属性,但是contents的值基本用不到。但它从2016年开始被Firefox支持。本文将仔细研究这个有趣的属性值。基本用法基于W3C[1]的display:contents定义。该元素本身不会生成任何框,但其子元素和伪元素仍会生成框,并且文本会正常运行。为了盒子的生成和布局,元素必须被视为它在元素树中被它的内容替换了(包括它的源文档子元素和它的伪元素,比如::before和::after伪元素,通常在元素的子元素之前/之后生成)。简单翻译一下set具有该属性值的元素本身不会生成任何框,但它保留其后代元素的正常显示。看一个简单的例子。有一个简单的三层结构如下:
