写点什么

CSS 之选择器(七):empty

作者:Augus
  • 2021 年 12 月 15 日
  • 本文字数:859 字

    阅读完需:约 3 分钟

CSS之选择器(七):empty

往期链接:


CSS之选择器


CSS之选择器(二)


CSS之选择器(三)


CSS之选择器(四)


CSS之选择器(五)


CSS之选择器(六)::before和::after

前言

回想一下,在我们如果要渲染一组数据的时候,往往需要通过 v-for 来循环遍历我们的数据源,拿到数据的每一项进行相应的操作。


我们还回判断数据源里面里面是否有数据,如果没有的话,我们可能会有一个图片加文字的形式提示数据内容为空。


然而,如上说的这些是要通过 js 或者 vue 的指令来实现,我们今天就来说通过 CSS 来如果实现它。有请我们今天的 CSS 选择器 :empty.

:empty

  • :empty 作用于无子节点的节点,如下三种情况不会触发:empty

  • 只存在节点:<div><p>我是数据</p></div>

  • 只存在文本:<div>我是数据</div>

  • 同时存在节点和文本:<div>我是 <p>数据</p></div>

实现


接下来,让我们实现一下如上图的效果。


<div>  <ul class="emptyList">    <li v-for="v in 20" :key="v">我是数据 {{v}}</li>  </ul>  <ul class="emptyList">    <li v-for="v in 0" :key="v">我是数据 {{v}}</li>  </ul></div>
复制代码


$empty: "https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/42d1cdf36f0b4f9eb86be1b93faa36a9~tplv-k3u1fbpfcp-zoom-1.image";.emptyList {  width: 400px;  height: 350px;  overflow: auto;  outline: 1px solid pink;  &:empty {    display: flex;    justify-content: center;    align-items: center;    background: url($empty) no-repeat center/400px auto;    &::after {      margin-top: 190px;      font-weight: bold;      content: "nothing";    }  }  & + .emptyList {    margin-left: 20px;  }  li {    padding: 0 10px;    height: 40px;    background-color: black;    line-height: 40px;    color: white;    &:nth-child(even) {      color:  black;      background-color: white;    }  }}
复制代码


如上,就实现完成了。


好,今天就到这里了,今天努力的你依然是最棒的。加油,加油,你最棒!加油,加油,你最强!哦豁,Bye Bye!!!

用户头像

Augus

关注

爱瞎搞的软件开发工程师 2021.06.10 加入

某摸鱼集团

评论

发布
暂无评论
CSS之选择器(七):empty