页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

时间:2023-01-04 16:58:07

前言

最近在整理博客写作格式的规范,碰到一个问题:标题要不要加序号? 直到我碰到一个人这么说

手动维护编号实在是一件很闹心的事情, 如果位置靠前的某个段落被删除了, 那么几乎每个段落的编号都要手动修改一下。

当即决定,放弃写序号,改由CSS自动生成。下面就开始了配置CSS的折腾之路

一波三折的修改过程

新世界的大门

找到一个讲排版的博客,点进去没想到进入了一片新天地,不光有我想找的自动生成序号的样式,其他还有很多可以学习的地方,自己还开源了一个中文的CSS样式表,真是佩服

http://zencode.in/8.中文排版二三事.html

直接套用不行

老样子,我虽然看不懂写的是啥,但一般样式拿过来直接套上就能用。

页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

但这次吃瘪了,标题全都是一,没有自动增加怎么回事?

页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

为什么会这样呢,我又找到个人,他是这么说的

使用方法

元素:before{

content:counter(计数器);

}

使用计数器来计算编号,计数器可以任意命名。除了使用计数器,还需要在元素的样式中追加对元素的(counter-increment)属性的指定为content属性值中所指定的计数器名称

元素{

counter-increment:content属性值中所指定的计数器名称

}

http://m.maiziedu.com/wiki/css3/number/

单一标题序号搞定

然后我照着他的意思把代码分出来,改成这样

.postBody h2::before
{
content: counter(entry825h2, cjk-ideographic) '\3001';
}
.postBody h2
{
counter-increment: entry825h2;
}

放入博客园后台配置文件里,保存,刷新。OK,可以了

页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

单纯复制出来一个h3是不行的

因为不懂原理,我就依瓢画葫芦,仿照上面h2的样式复制粘贴了一份,改成h3,结果成了这样

页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

修改h3的过程

什么鬼啊,怎么主标题和次标题排成顺序了! 怎么回事,难道是名字问题,那个是个标识符吗?我随即把h3中的entry825h2改成entry825h3,保存后刷新页面

页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

好,新问题产生,主次序号虽然分开了,次级序号还是连着的。

终于达成目标

后来又经过很长时间的摸索,踩了不少坑后,最后弄清了原理,成功搞定了问题

页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

简单来讲就是在运行到h2的时候把以前h3的计数器重置,这样就可以达到每个h2下h3又重新计数的效果,不懂原理,真的是绕了好多圈子。不明白的话看看我下边写的注释,多想一下就明白了。

上代码

❗️注意:因为我是h2作为正文主标题,h3作为子标题,所以这么写。你们要根据自己的实际情况(用h1或者h3作为主标题)进行更改

/*为h2和h3自动添加序号*/
.postBody h2:before
{
/*内容显示为:计数器h2counter的值转换为中文数字格式+顿号,格式:一、*/
content: counter(h2counter, cjk-ideographic) '\3001';
}
.postBody h2
{
/*重置计数器h3counter的值*/
counter-reset: h3counter;
/*计数器h2counter的值增加1*/
counter-increment: h2counter;
} .postBody h3:before
{
/*内容显示为:计数器h2counter的值+点+计数器h3counter的值,格式:1.1*/
content: counter(h2counter) "." counter(h3counter) " ";
}
.postBody h3
{
/*计数器h3counter的值增加1*/
counter-increment: h3counter;
}

改完以后需要注意的事情

  1. 要把以前手动写的序号都删掉,只保留标题,否则会出现

    页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程
  2. 不能只出现h3,没有父标题,否则会出现获取不到序号的情况,见上图
  3. 不能只出现一个h2,否则界面只有一、xxx,没有二,会非常怪异。

最后说两句

之所以中间糊里糊涂绕了那么多弯,主要是搞不清原理。

当你也遇到这种情况时,不妨停下来,想想原理是是什么,想明白了,也就能顺利做出来了。

页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程的更多相关文章

  1. 页面定制CSS代码初探(一):页面变宽 文本自动换行 图片按比缩放

    初识博客 初写博客,先在设置里选了个喜欢的模板 第一眼就爱上了呢!那极简的风格,我喜欢!!但是,应用后,却发现... 纳尼!模板上右侧那张漂亮的图片呢?!我的怎么什么都没有.没有图片好难看啊,瞬间无爱 ...

  2. 页面定制CSS代码初探(三):设置正文最小高度

    前言 没想到再次写这篇,已经过去1年半了. 现在审美也发生了改变,一开始做的样式全删了,只保留了h2的样式.原先认为界面要宽,两边留太多空很浪费,看惯了知乎和简书,觉得默认最大1000px的排版也不错 ...

  3. 页面定制CSS代码初探(二):自定义h2标题样式 添加阴影 添加底色 等

    故事的开始 先说一下<h2></h2>原先默认是空白的,很难看 然后今天无意中看到一个博友的标题很好看啊,一直就想要这种效果有没有? 好的东西自然要拿过来啦 通过审查元素,果然 ...

  4. 页面定制CSS代码初探(五):给每篇文章最后加上&&num;39&semi;&lt&semi;完&gt&semi;&&num;39&semi;

    前言 我刚写博客的时候,有几篇是手动在最后加了个<完> 今天在看别人CSS布局时,发现很多::before和::after标签,因为没学过CSS,从名字看大概是前边/后边 加上某个东西的意 ...

  5. 页面定制CSS代码初探(四):cnblogs使用Github引用样式

    前言 对于用惯了Github的人来说,眼里的引用应该是这样的 "Talk is cheap. Show me the code" -- Linus Torvalds 然而实际上cn ...

  6. 我的页面定制CSS代码(SimpleGamboge皮肤)

    我的页面定制CSS代码,针对博客园SimpleGamboge皮肤. 调整: 1.左上图片更换为自己的头像 2.扩大左侧栏宽度,缩小右侧主栏宽度宽度 3.扩大内容页面的评论区宽度,工具图标靠左 4.去广 ...

  7. 页面定制CSS代码

    博客皮肤:SimpleMemory .catListTitle { margin-top: 21px; margin-bottom: 10.5px; text-align: left; border- ...

  8. 生成代码,从 T1 到 T16 —— 自动生成多个类型的泛型

    当你想写一个泛型 的类型的时候,是否想过两个泛型参数.三个泛型参数.四个泛型参数或更多泛型参数的版本如何编写呢?是一个个编写?类小还好,类大了就杯具! 事实上,在 Visual Studio 中生成代 ...

  9. 博客的页面定制CSS

    我目前的博客CSS其实也是借用了别家的,来源:https://www.cnblogs.com/Penn000/p/6947472.html 注意使用的模板是:darkgreentrip 复制粘贴使用就 ...

随机推荐

  1. Ajax Step By Step2

    第二.[$.get()和$.post()方法] .load()方法是局部方法(有需要父$),因为他需要一个包含元素的 jQuery 对象作为前缀.而$.get()和 $.post()是全局方法,无须指 ...

  2. php-redis扩展安装

    1 phpredis 在php中访问redis需要安装 https://github.com/phpredis/phpredis 基本上安装上面的readme既可以完成安装,需要注意的是在编译安装的时 ...

  3. Makefile学习(1) arm-linux-ld arm-linux-objcopy arm-linux-objdump

    记录自己所学的点点滴滴O(∩_∩)O哈哈~ makefile: link.bin: start.o main.o arm-linux-ld -Tlink.lds -o link.elf $^ arm- ...

  4. php QQ登录

    基本原理: 就是获取唯一的openid,此值只要与自己数据库表中的值对应,就说明是此用户, 没有,则说明是新用户,其实就是找对应关系,因为openid与QQ号是唯一对应关系 放置按钮: 如在首页 in ...

  5. 最新xgboost python32位下安装xgboost

    网上很多windows python下安装xgboost都是很简单的几步无非是visual studio2013以上版本编译,安装.但现在最新的xgboost已经移除了c++工程文件,找到旧版本的也多 ...

  6. Object&period;setPrototypeOf 方法的使用

    将一个指定的对象的原型设置为另一个对象或者null(既对象的[[Prototype]]内部属性). 语法 Object.setPrototypeOf(obj, prototype) 参数 obj 将被 ...

  7. Mac iterm2 linux vim 语言问题

  8. RESTful 的总结

    1.什么是RESTful? REST,即Representational State Transfer的缩写."(资源的)表现层状态转化". 2.什么是表现层? "资源& ...

  9. MySQL学习——标识符语法和命名规则

    转自:http://blog.csdn.net/notbaron/article/details/50868485 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron ...

  10. 关于WCF服务 http&colon;&sol;&sol;XXXXXX&sol;XXX&sol;xxx&period;svc不支持内容类型 application&sol;sop&plus;xml&semi;charset&equals;utf-8 错误解决方法

    有时候用IIS部署一个WCF服务时,无论是在客户端还是在服务端通过地址都能正常访问. 但是当你在客户端添加服务引用时, 怎么也添加不上, 会碰到了如下错误: 好啦. 现在说说怎么解决吧. 其实很简单. ...