html - 不要使用 CSS 显示空的内联 block 元素

标签 html css css-selectors

我有这个 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>

样式为:

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;}

问题是空元素占用空间。是否有可能(仅使用 CSS)防止空元素占用垂直空间?

Here is a fiddle of the problem

最佳答案

使用 :empty pseudo class隐藏空元素:

Example Here

p:empty {
  display: none;
}

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;
}
<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>

关于html - 不要使用 CSS 显示空的内联 block 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228878/

相关文章:

Python,Selenium用类查找元素并等待类更改

javascript - 防止触发按钮事件

html - 媒体查询显示何时应执行常规 css 的问题,反之亦然

html - 无法使用 Angular 6 Type 脚本在打印预览页面上使用 CSS 呈现数据

html - 将一个 div 的一 Angular 堆叠在另一个 div 下方

css - 选择最后一个 :link from a nested dynamic navigation list

具有数据库连接的 JavaScript/HTML5 游戏?

javascript - 附加奇怪的行为

css - th :first-child not working

html - 为什么我的背景颜色不显示?