首页  >  文章  >  web前端  >  CSS&# 独生子而不是条件逻辑

CSS&# 独生子而不是条件逻辑

DDD
DDD原创
2024-10-26 11:09:29522浏览

在我使用的许多前端框架中,都有将三元组或 if 分支注入到 HTML 逻辑中的选项。这是我经常使用的逻辑。一种特殊情况是在没有数据时显示。

我刚刚偶然发现了一种 CSS 模式,它让我的生活变得更加轻松::only-child 伪类。

反应

在 React 中,我会做这样的“事情”...

{
  data.length === 0
    ? <div>Nothing to show.</div>
    : <TableWithRecords />
}

在 Angular 中,我会做这样的“事情”...

@if (data.length === 0) {
   <div>Nothing to show.</div>
} @else {
   <TableWithRecords />
}

使用CSS

简单来说,我有两种情况。

  1. 没有数据。
  2. 有数据。
<h2>No Data Showing</h2>
<ul>
  <li class="handle-no-data">Nothing to show.</li>
  <!-- <li>Data here</li> -->
</ul>

<h2>Data Showing</h2>
<ul>
  <li class="handle-no-data">Nothing to show.</li>
  <li>Data here</li>
</ul>

使用简单的 CSS 类 .single ...

.handle-no-data:not(:only-child) {
  display: none;
}
.handle-no-data:only-child {
  display: flex;
}

这个 CSS 可以简化为 ...

.handle-no-data {
  &:not(:only-child) {
    display: none;
  }
  &:only-child {
    display: flex;
  }
}

这是上面代码的结果...

CSS

概括

如您所见,我必须将数据处理移至表级别,但 CSS 非常直接地处理“无数据”场景。

这太令人兴奋了!

以上是CSS&# 独生子而不是条件逻辑的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn