当前位置: 首页 > article >正文

用 css 实现空列表自动提示 “空状态”

css实现

/* 空列表状态通用css */
.list-auto-empty:empty::after {
  content: attr(empty);
  color: gray;
  margin: 50px auto 0;
  background-image: url('empty_data.png');
  background-size: 100%;
  background-repeat: no-repeat;
  width: 224px;
  height: 140px;
  padding-top: 140px;
  text-align: center;
}

html使用

<div class="list list-auto-empty" empty="Empty data">

注意:attr(empty) 用于获取 empty 属性值,设置提示文字

特殊情况,无效(包含空格)

<div class="list-auto-empty" empty="Empty data"> </div>

增加脚本处理(文件发生变化后重新执行)

// 使用jQuery遍历所有的div元素
$('.list-auto-empty').each(function() {
    // 使用$.trim()函数去除元素内容的前后空白字符
    let content = $.trim($(this).text());
    // 如果内容为空,则添加'empty-like'类名
    if (content === '') $(this).addClass('empty-like');
});

最终css

.list-auto-empty.empty-like::after,
.list-auto-empty:empty::after {
  content: attr(empty);
  color: gray;
  margin: 50px auto 0;
  background-image: url('empty_data.png');
  background-size: 100%;
  background-repeat: no-repeat;
  width: 224px;
  height: 140px;
  padding-top: 140px;
  text-align: center;
}

最终辅助 js 脚本(监听.list-auto-empty中的变化重新处理.empty-like)

// 空列表辅助方法
function listEmptyHandler() {
  const func = (_this) => {
    // 使用trim()函数去除元素内容的前后空白字符
    const content = $(_this).text();
    const html = $(_this).html();
    // 如果内容为空,则添加'empty-like'类名
    if (content.trim() == '' && html.trim() == '') $(_this).addClass('empty-like');
    else $(_this).removeClass('empty-like');
  };

  $('.list-auto-empty').each(function () {
    func(this);
    const $element = $(this)[0];
    const observer = new MutationObserver(() => func(this));
    if ($element) {
      observer.observe($element, {
        attributes: true, // 观察属性变化
        childList: true, // 观察子节点的变化
        subtree: true, // 观察后代节点的变化
        characterData: true, // 观察文本内容的变化
        characterDataOldValue: true, // 观察文本内容变化时,保存旧值
      });
    }
  });
}

使用 html示例

<div class="list list-auto-empty" empty="Empty data">

http://www.kler.cn/a/378607.html

相关文章:

  • 《C++最新标准下字符串字面量类型的深度剖析》
  • 【OpenGL】vs中glsl高亮显示插件
  • Go 语言之搭建通用 Web 项目开发脚手架
  • 利用EasyExcel实现简易Excel导出
  • Hive数据库操作语法
  • SpringBoot3如何读取配置文件application.properties的属性值
  • vite构建Vue3项目:封装公共组件,发布npm包,自定义组件库
  • 使用Jupyter Notebook进行数据科学项目
  • CPU用户时间百分比
  • 【flink】之新版本kafka到kafka
  • 五、Go语言快速入门值条件控制
  • strcat,strncat,strstr
  • VScode调试
  • nodejs爬虫系统
  • Excel:vba实现批量插入图片批注
  • AI助力医疗:未来的医生会是机器人吗?
  • 使用opencv调用TV_L1算法提取光流
  • MySQL表的增删改查(CRUD1)
  • rk3568 适配 CAN
  • 浏览器、性能优化、前端安全重难点面试题
  • LeetCode 0685.冗余连接 II:并查集(和I有何不同分析)——详细题解(附图)
  • ReactNative Fabric渲染器和组件(5)
  • 【NLP自然语言处理】深入解析Encoder与Decoder模块:结构、作用与深度学习应用
  • 简单题:Base32 编码和解码问题| 豆包MarsCode AI刷题
  • 【多线程奇妙屋】收藏多年的线程安全问题大全笔记(下篇) { 死锁问题 },笔记一生一起走,那些日子不再有
  • STM32 第22章 常用存储器介绍