不要使用CSS显示空的内联块元素

Orm*_*moz 3 html css css-selectors css3

我有这个HTML布局:

<p>foo</p><p>bar</p>
<p>foo2</p><p>bar2</p>
<p></p><p></p>
<p>foo4</p><p>bar4</p>
<p></p><p></p>
Run Code Online (Sandbox Code Playgroud)

其风格为:

p{display:inline-block; width:50%;margin:0;}
p:nth-child(even){text-align:left;background:red;}
p:nth-child(odd){text-align:right;background:blue;}
Run Code Online (Sandbox Code Playgroud)

问题是空元素占用空间.是否可以(仅限CSS)防止空元素占用垂直空间?

这是一个问题的小提琴

Jos*_*ier 5

使用:empty伪类隐藏空元素:

这里的例子

p:empty {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)

p {
  display: inline-block;
  width: 50%;
  margin: 0;
}

p:nth-child(even) {
  text-align: left;
  background: red;
}

p:nth-child(odd) {
  text-align: right;
  background: blue;
}
p:empty {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)
<p>foo</p><p>bar</p>
<p>foo2</p><p>bar2</p>
<p></p><p></p>
<p>foo4</p><p>bar4</p>
<p></p><p></p>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,很棒的回答:-) (2认同)