CSS content, counter-increment 和 counter-reset详解[译](3)
作者:神采飞扬 来源:前端观察 发布时间:2009-06-02 12:51:00
CSS content 属性和:before 、:after 伪元素的浏览器支持情况:
因为在IE6 和IE7 以及IE8的IE7兼容模式中,:before 和:after 都不被支持,所以可以认为它们都不支持content 属性,测试也就毫无意义,所以这个列表将IE6、IE7和IE8的IE7兼容模式忽略。——神飞
IE8 | FF3 | FF 3.5 Beta | Saf 3.2 | Saf 4 Beta | Opera 9.64 | ||
---|---|---|---|---|---|---|---|
:before | |||||||
:after | |||||||
content | 支持,除了下面提到的问题 | 支持,除了下面提到的问题 | 支持,除了下面提到的问题 | ||||
none | n | ||||||
normal | |||||||
url() | 什么都不显示 | 什么都不显示 | 什么都不显示 | 图片丢失图标 | 图片丢失图标 | 图片丢失替代文字 | |
string | |||||||
open-quote close-quote | 不能正确嵌套引号,但是包含引号。 | ||||||
no-open-quote no-close-quote | |||||||
attr(x) | |||||||
counter |
counter-increment 和counter-reset CSS 属性
Counter并不能单独工作!如果你只是写 p:before {content: counter(subtitles, decimal);}
,每个段落只会在它前面有个0。为了更容易的理解这一点,让我们再来看一个实例:
footnotes
creating numbering for outlines: 计算篇数、章节、和段落,在每一个新的章节重新开始计算段落,并为每新的一篇重设章节。
使用CSS counter 语句你可以在你的页面里面定义很多个计数器,想定义多少都可以,并可以递增计数器或重设计数器。
<p> 在本段中,我加入了<cite class="footnote">脚注引用。</cite></p>
cite.footnote {counter-increment: citations;}
cite.footnote:after {content: counter(citations); vertical-align:text-top;}
在我们上面的例子中,我们想在每个<cite class="footnote">
上增加计数器,然后在:after伪元素上用content属性添加脚注的数字:诡异的是,这在浏览器中并不能工作。你能发现我的错误吗?为了使用一个计数器(counter),你应该提供一个名字(name)。在上面的情景中,这个名字就是”citations”。 当然你也可以指定样式。如果未定义样式,样式就会默认为数字。这些值可以包括所有的list-style-type 值,尽管只有<ol>值懂得一个计数器。这些值包括decimal | decimal-leading-zero | lower-alpha | lower-greek | lower-roman | upper-alpha | upper-roman | lower-latin | upper-latin | hebrew | georgian
等等。
在生成的内容在,你可以引入多个计数器。比如,在法律术语中,通常在已编号的章节里面还有章节。这是可以用CSS计数器实现的。
<h1>第一个标题</h1>
<h2>章节</h2>
<p>文字....</p>
<h2>另一个章节</h2>
<p>文字....</p>
<h2>再一个章节</h2>
<p>文字....</p>
<h1>另一个标题</h1>
<h2>章节</h2>
<p>文字....</p>
<h2>另一个章节</h2>
<p>文字....</p>
<h2>再一个章节</h2>
<p>文字....</p>
在每个h1的前面添加计数器,并在每一个h1后面重设h2的计数器, CSS 可以这样写:
h1 {counter-increment: headers;counter-reset: subsections;}
h1:before {content: counter(headers, upper-roman);}
h2 {counter-increment:subsections;}
h2:before {content: counter(headers, upper-roman) "." counter(subsections, lower-roman) ":";}
现在所有的<h2>被加上了它们的标题数字和章节数字。
关于这些代码需要注意的是:请注意在h2:before 声明中我们包括了两个计数器:标题计数器和章节计数器。在每个调用中我们都定义了样式,因为样式并没有被继承。同样,我们在声明中添加了字符串。注意我们是用引号来引入字符串的,而不是用计数器,并且除了我们的内容值之外,没有相关元素。为了在同样的样式属性中联合多个计数器ID,可以使用空格将计数器ID值连在一起。
计数器的递增是通过counter-increment 声明来实现的。尽管默认的值从1开始递增,我们也可以从其它数值开始递增。你可以重设计数器。在每个标题后面重设章节的计数器看起来是比较容易接受的。要重写默认值1,并在每个<h1>元素后重设数字,CSS可以这样写:
h1 {
counter-increment: headers 10;
counter-reset: subsections 5;
}
h2 {
counter-increment:subsections 2;
}
最后,请查看本文中使用的例子的演示:cssContent_test.htm ,你可以对照演示来尝试自己做一些测试来。
猜你喜欢
- 从 Google 的一个细节说起:整个虚线框都是“Next”的可点击区域。看似不经意,却直接提升了细节的可用性。其它页码也巧妙地和上面的字母
- <% '#######以下是一个类文件,下面的注解是调用类的方法####################
- 这里是一个基于GMap2和XML的小例子,数据存在XML文件中 ,这是最简单的模式,却相当地有用。实例的网址是: http://sunjia
- 有时候要通过asp代码在数据库中创建表和列,下面的就是这些操作的函数。1.检测表是否存在tbName 检测的表的名称dbTp 数据库的类型1
- 树形目录显示程序问题描述:在我们项目中常常会出现自关联的数据表,如果我们从整体看去,整个表就呈现为一个树形数据结构(对于复杂的情况,它可能变
- 它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在
- 适用环境: PHP5.2.x / mysql 5.0.xclass Mysql { priva
- SQL Server有几个版本都在使用中——4.2, 6.0, 6.5, 7.0, 2000,以及2
- 下面就来介绍下SQL Server 2008中使用的端口有哪些:首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果我们要远程
- 问题1:使用.net2005自带的SQL-Express连接不上。解决方法:1.网络防火墙阻止数据库连接;2.默认SQL-Express没有
- 代码如下:<% function CheckFileContent(FileName) dim 
- 重复的数据可能有这样两种情况,第一种: 表中只有某些字段一样,第二种是两行记录完全一样。一、对于部分字段重复数据的删除 1.查询重复的数据
- 这本入门手册是否合适你?我只想告诉你我非常喜欢这本书。我对Microsoft Access的经验足以让我跳过这本傻瓜系列教材,但是实际情况是
- SQL的扩展的删除与恢复 删除 代码如下:use master exec spdropextendedproc “xpcmdshell“ e
- oracle命令删除用户:connect / as sysdba; shutdown abort; startup;&n
- 一般来说,一个真正的、完整的站点是离不开数据库的,因为实际应用中,需要保存的数据很多,而且这些数据之间往往还有关联,利用数据库来管理这些数据
- 类、构造函数、原型先来说明一点:在上面的内容中提到,每一个函数都包含了一个prototype属性,这个属性指向了一个prototype对象(
- 如果让一个ASP页面以https开始,则在该ASP页面最顶部添加如下代码: <%Response.Buffer =
- 网页的圆角处理,其实最开始的九宫格的表格处理是挺方便的,只是现在都不用表格布局了,自然就被非法取缔了。呵呵。微软的有VML画圆角,由于只是它
- FCKeditor的样式设置涉及到了两个文件,一个是你定义好的样式表文件.css,另一个是告诉fck样式表如何使用的xml文件,两个文件确一