CSS3每日一练之内容处理-嵌套编号

出处:http://www.w3cfuns.com/thread-5592229-1-17.html

1、大标题一
   1、子标题
   2、子标题
   3、子标题
2、大标题二
   1、子标题
   2、子标题
3、大标题三
   1、子标题
   2、子标题
   3、子标题

这种问题,你可能会觉得直接定义两个计数器,分别编号不就行了,于是就写出了如下代码:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="gb2312">
  5. <title>CSS3每日一练之内容处理-嵌套编号 | 前端开发网(W3Cfuns.com)!</title>
  6. <style type="text/css">
  7. *{margin:0; padding:0;}
  8. body{font-size:14px; color:#333; font-family:"Microsoft Yahei";}
  9. h2{counter-increment:myCounter;}
  10. h2:before{color:#05a; content:counter(myCounter)"、";}
  11. p{counter-increment:sub;}
  12. p:before{margin-left:20px; content:counter(sub)"、";}
  13. </style>
  14. </head>
  15. <body>
  16. <h2>大标题</h2>
  17. <p>子标题</p>
  18. <p>子标题</p>
  19. <p>子标题</p>
  20. <h2>大标题</h2>
  21. <p>子标题</p>
  22. <p>子标题</p>
  23. <h2>大标题</h2>
  24. <p>子标题</p>
  25. <p>子标题</p>
  26. <p>子标题</p>
  27. </body>
  28. </html>

复制代码

可是这么做真的就正确吗,似乎有些不对劲,所有的子标题会一直往下编号,按道理来讲,在第二个大标题中,子标题应该从1开始计数了。也就是说,我们必须对每个大标题中的子标题的编号进行重置才行!下面我们就来学习一下重置属性。

counter-reset
我们只要在大标题的样式中定义此属性,其值就是子标题的编号名称,于是我们就写出了如下代码:
h2{counter-increment:myCounter; counter-reset:sub;}
h2:before{color:#05a; content:counter(myCounter)"、";}
p{counter-increment:sub;}
p:before{margin-left:20px; content:counter(sub)"、";}

代码案例:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="gb2312">
  5. <title>CSS3每日一练之内容处理-嵌套编号 | 前端开发网(W3Cfuns.com)!</title>
  6. <style type="text/css">
  7. *{margin:0; padding:0;}
  8. body{font-size:14px; color:#333; font-family:"Microsoft Yahei";}
  9. h2{counter-increment:myCounter; counter-reset:sub;}
  10. h2:before{color:#05a; content:counter(myCounter)"、";}
  11. p{counter-increment:sub;}
  12. p:before{margin-left:20px; content:counter(sub)"、";}
  13. </style>
  14. </head>
  15. <body>
  16. <h2>大标题</h2>
  17. <p>子标题</p>
  18. <p>子标题</p>
  19. <p>子标题</p>
  20. <h2>大标题</h2>
  21. <p>子标题</p>
  22. <p>子标题</p>
  23. <h2>大标题</h2>
  24. <p>子标题</p>
  25. <p>子标题</p>
  26. <p>子标题</p>
  27. </body>
  28. </html>
时间: 2024-10-22 22:22:01

CSS3每日一练之内容处理-嵌套编号的相关文章

CSS3每日一练之选择器-结构性伪类选择器

<!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title>CSS3每日一练之选择器-结构性伪类选择器[四] | 前端开发网(W3Cfuns.com)!</title> <style type="text/css"> *{margin:0; padding:0;} #list{font-family:"Micro

HTML5每日一练之details展开收缩标签的应用

details标签的出现,为我们带来了更好的用户体验,不必为这种收缩展开的效果再编写JS来实现.注:目前仅Chrome支持此标签. details有一个新增加的子标签——summary,当鼠标点击summary标签中的内容文字时,details标签中的其他所有元素将会展开或收缩. detalis标签: 案例1: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" conte

每日一小练——最长平台问题

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:最长平台问题 内容:一直一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串同样的元素.而且这个元素不能再延伸. 比如,在1,2,2,3,3,3,4,5,5,6中1,2,2,3,3,3,4,5,5,6都是平台.试编写一个程序,接受一个数组,把这个数组中最长的平台找出来.在这个样例中, 3,3,3就是该数组的中的最长的平台. 说明: 这个程序十分简单,可是编写好却不easy,因此在编敲代码时应注意考虑以下几点:

每日一小练——列出全部子集

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:列出全部子集 内容:写一个程序,列出{1,2,3,4,...,n}这个集合的全部子集,包含空集{ }. 解决问题的算法应该有非常多种,只是我发现了一种非常easy也非常好玩的方法,就是用二进制表示几何元素的方法 比方假设n是3,则子集有(不包含空集){1}{2}{3}{1,2}{1,3}{2,3}{1,2,3}就是1*{0,1}and2*{0,1}and3{0,1}每一个组合出现一次,所以也能够看成是{0,0,1}{0

每日一小练——按字典顺序列出所有排列

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:按字典顺序列出所有排列 内容:请写一个程序,用字典顺序列出n个元素的所有排列 这个问题有点小复杂,不是太好想,反正我是想了好久. 看到这个题目我先是想到的就是递归因为这个题目就是用指针对高位选择,然后将指针传给临近的低位再选择. 不过仔细研究原来没这么简单.以n=4举例当处理以1开头的排列时1234到1432,但是在排列2开头的时候不太好建立统一的递归关系.(没办法太统一的递归方法中将后面的数字选出来),所以将第一位分

每日一小练——快速Fibonacci数算法

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:快速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有如下规律: 尝试寻找快速的求出fn的方法 我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神..奥,不对就解决了! 其实题目中就给出了这个算法的递归形式,所以首先我想到的是递归解法,不过因为求解快速方法在递归之前,我编写了一个非递归的算法 #include <iostream> usi

每日一小练——按字典顺序列出全部子集

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:按字典顺序列出全部子集 内容: 请写一个程序用字典顺序把一个{1,2,3,4,...,n}集合的全部子集找出来. 解答: 想必我就不用解释什么是字典顺序了,作为乘虚猿和攻城狮大家应该懂得,无论你懂不懂,反正我懂了! 事实上我们能够先列出一个实例,观察规律: 比如n=3 {1} {1,2} {1,2,3} {1,3} {2} {2,3} {3} 能够看出这种规律(假设你说我怎么没看出来,事实上你能够再多看一会!) 令一个

每日一小练——求质数

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:求质数 内容: 试编写一个程序,找出前N个质数.如果没有进一步要求,这不是难题.但在此希望从所知的.使用除法的方法中,用最快的办法来编写程序. 我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神..奥,不对就解决了!这个题目确实很简单,先看看常规解法吧! #include <iostream> #include <math.h> #define endNum 200 using

每日一小练——等值首尾和

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:等值首尾和 内容: 假设有一个数组x[],它有n个元素,每一个都大于零:称x[0]+x[1]+...+x[i]为前置和,而x[j]+x[j+1]+...+x[n-1]为后置和.试编写一个程序,求出x[]中有多少组相同的前置和后置和. 例如:x[]的元素是3,6,2,1,4,5,2,于是x[]的前置和有以下7个,即3,9,11,12,16,21,23:后置和则2,7,11,12,14,20,23; 于是11,12,23,