CSS content, counter-increment 和 counter-reset详解[译]

作者:神采飞扬 来源:前端观察 时间:2009-06-02 12:51:00 

在IE7还不支持counter 和increment 属性之前,我从来没有用过它们,也从来没有使用过:before 伪元素和content 属性。然而IE8开始全部支持这些css特性,所以,我想是时候好好研究一下它们了。

<ol>的start属性和<li>的value属性在HTML 4.01标准中是不赞成使用的,而且也不被XHTML strict支持。value属性设置列表元素的值,让它后面的条目从该value值递增。然而,没有其它XHTML元素可以替代这些元素,不过CSS 2.1 提供了在任何元素上设置递增序列的方法,而不仅仅是在<li>元素上。本文主要关注以下CSS伪元素和属性:

  • content CSS 属性

  • :before 伪元素

  • :after 伪元素

  • counter-increment CSS 属性

  • counter-reset CSS 属性

属性通常配合:before:after 伪元素一起使用。的属性的值添加到你的文档的表现上面,但是没有(而且不会)被添加到DOM中。如果你开始阅读本教程,你需要了解这一点!你用Firebug之类的工具查看相关元素的时候,或者查看页面的源代码的时候,是不会看到的属性值的。我们在这里讨论:before、 :after 和content是因为,没有它们,counter基本上是派不上用场的:如果你不是在元素的前面(或者后面)显示某些内容,你为什么要用这个呢?

content属性概述

为了让本教程更容易理解,我们先来看一个在链接后面添加” – hrefValue” 的具体的例子:

<ul id="showlinkafterlink">
 <li><a href="http://www.qianduan.net">前端观察</a></li>
 <li><a href=http://www.aspxhome.com>asp之家</a></li>
 <li><a href=http://www.cidianwang.com>词典网</a></li>
</ul>

例1: 没有任何CSS的时候上面的HTML代码的表现。

#showlinkafterlink a:after {
content:"   - <" attr(href) ">";
}

例2: 如果你在使用一个兼容网页标准的浏览器(比如,非IE6 或IE7),在添加了以上样式以后,上面的HTML代码将会这样显示。

对于通过content 属性渲染内容,需要注意的一些事情是:

  • 产生的内容不会改变文档树。内容只是被渲染,它不会出现在DOM树中,只是影响页面的演示,不会影响代码。

  • 要控制生成的内容的表现,你可以使用其它的CSS属性。在:after里面声明的所有属性都会对产生的内容起作用。

  • 也许你需要知道,在一个元素的每一边,你只能添加一次伪元素。element:before:before这种写法无效。

#showlinkafterlink a:after {
content:"   - <" attr(href) ">";
color: #ff0000;  font-style: italic;
}

例3: 这里我们为生成的内容定义了字体颜色和样式。

因为生成的内容没有被添加到DOM,可以认为它就是一个添加的span,样式继承自其父级元素。content 不能包含任何HTML,只能包含ASCII,也不能使用ISO 字符集。content要与:before 和:after 伪元素一起使用来在一个文档内生产内容。

标签:counter,increment,ie7,css
0
投稿

猜你喜欢

  • 设计规范有谱么?

    2008-06-06 12:28:00
  • Web脚本开发语言比较

    2007-08-22 17:32:00
  • 无组件上传图片到数据库中,asp解决方案

    2007-08-03 13:22:00
  • Dreamweaver初学者常见问题解答

    2007-02-03 11:39:00
  • PHP设计模式之迭代器模式浅析

    2023-05-25 11:26:26
  • CSS自适应宽度圆角按钮

    2007-11-20 11:38:00
  • 如何增强网站数据库Access文件的安全性

    2008-11-13 16:58:00
  • 如何编写TOP10之类的排行榜?

    2009-11-07 18:45:00
  • MySQL中如何定义外键

    2010-03-09 16:18:00
  • SQL Server 2008中的新日期数据类型

    2009-03-16 15:05:00
  • mysql中从字段中URL提取域名信息

    2009-05-25 10:35:00
  • JS重现80后儿时经典拼板(模板)游戏

    2011-09-11 18:36:46
  • 慎用 script 节点的 src 属性来传递参数

    2009-11-18 12:59:00
  • 掀起抛弃IE6的高潮吧

    2009-02-26 12:44:00
  • 为什么不压缩 HTML

    2010-05-07 12:37:00
  • escape解决AJAX中文乱码的简单方法

    2008-10-23 14:32:00
  • 良好体验,必须是全方位的

    2009-09-24 13:32:00
  • 用JavaScript脚本实现的图灵机

    2009-01-21 18:10:00
  • 小议sqlserver数据库主键选取策略

    2011-10-24 19:51:30
  • 垂直栅格与渐进式行距(上)

    2009-04-01 18:30:00
  • asp之家 网络编程 m.aspxhome.com