[css] 有序列表样式分享(1.→(1)→A.→i.)

基于 Savor 主题有序列表样式,GPT 修改,自己测试了一下能用:

版本一:适用 Savor、Odyssey 主题(完美适配)

/* 隐藏原始编号 */
.li[data-subtype="o"] .li[data-subtype="o"] .protyle-action--order {
    color: transparent !important;
}

/* 动态生成编号的颜色 */
.li[data-subtype="o"] .li[data-subtype="o"] .protyle-action::after {
    color: var(--b3-theme-on-background);
}

/* 初始化计数器 */
.list[data-subtype="o"] {
    counter-reset: o1 0 o2 0 o3 0 o4 0;
}



/* 第一层嵌套:阿拉伯数字 (1. 2. 3.) */
.li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o1;
    content: counter(o1, decimal) ".";
    position: absolute;
    padding: 3px 2px;
    width: 24px;
    display: flex;
    justify-content: center;
}

/* 第二层嵌套:中文括号 + 阿拉伯数字 ((1) (2) (3)) */
.li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o2;
    content: "(" counter(o2, decimal) ")";
    position: absolute;
}

/* 第三层嵌套:大写拉丁字母 (A. B. C.) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o3;
    content: counter(o3, upper-alpha) ".";
    position: absolute;
}

/* 第四层嵌套:小写罗马数字 (i. ii. iii.) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o4;
    content: counter(o4, lower-roman) ".";
    position: absolute;
}

/* 循环更深层次嵌套,按四层规则重新开始 */

/* 第一层规则:阿拉伯数字 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o1;
    content: counter(o1, decimal) ".";
    position: absolute;
}

/* 第二层规则:中文括号 + 阿拉伯数字 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o2;
    content: "(" counter(o2, decimal) ")";
    position: absolute;
}

/* 第三层规则:大写拉丁字母 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o3;
    content: counter(o3, upper-alpha) ".";
    position: absolute;
}

/* 第四层规则:小写罗马数字 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o4;
    content: counter(o4, lower-roman) ".";
    position: absolute;
}

版本二:其他主题(已知问题:方框阴影错位)

202411182234.png

/* 隐藏原始编号 */
.li[data-subtype="o"] .li[data-subtype="o"] .protyle-action--order {
    color: transparent !important;
}

/* 动态生成编号的颜色 */
.li[data-subtype="o"] .li[data-subtype="o"] .protyle-action::after {
    color: var(--b3-theme-on-background);
}

/* 初始化计数器 */
.list[data-subtype="o"] {
    counter-reset: o1 0 o2 0 o3 0 o4 0;
}



/* 第一层嵌套:阿拉伯数字 (1. 2. 3.) */
.li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o1;
    content: counter(o1, decimal) ".";
    position: absolute;
    padding: 3px 2px;
    width: 24px;
    display: flex;
    justify-content: center;
    margin: -20px 0 0 -8px !important;
}

/* 第二层嵌套:中文括号 + 阿拉伯数字 ((1) (2) (3)) */
.li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o2;
    content: "(" counter(o2, decimal) ")";
    position: absolute;
}

/* 第三层嵌套:大写拉丁字母 (A. B. C.) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o3;
    content: counter(o3, upper-alpha) ".";
    position: absolute;
}

/* 第四层嵌套:小写罗马数字 (i. ii. iii.) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o4;
    content: counter(o4, lower-roman) ".";
    position: absolute;
}

/* 循环更深层次嵌套,按四层规则重新开始 */

/* 第一层规则:阿拉伯数字 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o1;
    content: counter(o1, decimal) ".";
    position: absolute;
}

/* 第二层规则:中文括号 + 阿拉伯数字 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o2;
    content: "(" counter(o2, decimal) ")";
    position: absolute;
}

/* 第三层规则:大写拉丁字母 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o3;
    content: counter(o3, upper-alpha) ".";
    position: absolute;
}

/* 第四层规则:小写罗马数字 (循环) */
.li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] .li[data-subtype="o"] > .protyle-action::after {
    counter-increment: o4;
    content: counter(o4, lower-roman) ".";
    position: absolute;
}



附 GPT 调教提示语,有需要的朋友可以根据自己需求修改:

第一句:

帮我分析 CSS 代码

第二句:

该 CSS 代码片段适用于“思源笔记”:(附上参考代码)

第三句:

请基于源代码修改:(注意!基于源代码修改,无需优化!)

第一层嵌套: 使用阿拉伯数字 (e.g., 1. 2. 3.)。

第二层嵌套: 使用中文括号 + 阿拉伯数字 (e.g., (1) (2) (3))。

第三层嵌套: 使用大写拉丁字母 (e.g., A. B. C.)。 第四层嵌套:使用小写罗马数字 (e.g., i. ii. iii.)。

层级越深,编号的规则在这四种格式之间循环。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23924 引用 • 97383 回帖
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    111 引用 • 764 回帖 • 2 关注
3 操作
JOYCELEEEEE 在 2024-11-18 23:35:01 更新了该帖
JOYCELEEEEE 在 2024-11-18 23:25:19 更新了该帖
JOYCELEEEEE 在 2024-11-18 22:29:44 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • ic

    原始编号没有隐藏怎么回事?

  • 其他回帖
  • JOYCELEEEEE

    pdf 可以按样式导出,其他的格式没有测试过,你可以自己试试看。

  • NieJianYing

    有办法导出时也能按照样式导出吗

    1 回复
  • EmptyLight 1

    我印象里见过同样的问题,找了一下写过的代码,应该是 margin 这一行修正的。可以加上 margin 这行试试。

    .li[data-subtype="o"] > .protyle-action::after {
        padding: 3px 2px;
        width: 24px;
        display: flex;
        justify-content: center;
        margin: -20px 0 0 -8px !important;
    }
    
    1 回复
  • 查看全部回帖

推荐标签 标签

  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 1 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    111 引用 • 764 回帖 • 2 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 331 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 365 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 642 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 1 关注
  • Outlook
    1 引用 • 5 回帖 • 3 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 1 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 375 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 164 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    579 引用 • 3534 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖 • 2 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    178 引用 • 816 回帖 • 2 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 653 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 86 关注
  • V2Ray
    1 引用 • 15 回帖 • 3 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 492 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    132 引用 • 796 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 425 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 123 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 625 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 375 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 18 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 9 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 482 关注