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 伪元素一起使用来在一个文档内生产内容。
猜你喜欢
- li {list-style-image: url(images/disc.gif);}li的这个样式定义是将列表项目使用图片来代替显示的小
- 在处理css的机制上,IE总是有很多让人吐血的举动,但对于他们现在的改进力度还是值得高兴的。就拿对伪类:hover的支持来说,IE7+终于添
- 你用过css么?当然,我是指你喜欢做网页的话,用过?很好,那你用过它的特效么?没有?那请跟我来。让我先通俗的介绍一下css,cs
- 1. 什么是404404是一个 http 错误代码,即请求的网页不存在。代码404的第一个“4”代表客户端的错误,如错误的网页位址;后两的数
- 本文总结了input的各种使用方法,挺全面的1.取消按钮按下时的虚线框在input里添加属性值 hideFocus 或者 HideFocus
- 《页面表达常用方式》是整个“web交互设计方法”中的一部分:设计师在设计页面时,应该在页面上建立许多视觉层次,引导用户的视觉焦点。把用户的注
- 如果你真正理解Javascript函数是如何调用工作的,那么就可以避免一些bug的发生; 首先让我们创建一个简单的函数,这个函数将在下文中使
- HTML是万维网上发布超文本的通用语言[1]。从1982年Tim Berners-Lee简化SGML建立HTML的原始定义到2001年发布X
- Oracle9i中提供强大的迁移功能,可以从多种数据库向Oracle迁移数据。Oracle新发行的迁移工具提供了从Access2
- MySQL是一个真正的多用户、多线程SQL数据库服务器。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mys
- PL/SQL是由Oracle公司对标准SQL进行扩展,专用于Oracle数据库中程序设计的专用语言,属第三代过程式程序设计语言。从Oracl
- 网页设计中,内容组织恐怕是最至关重要、最影响设计品质的方面了。如何将信息组织到好的布局中,是一个网站的基础,并且应该在考虑外观之前就决定好。
- * 前,我在公司做设计,当时就已经做到技术总监,Photoshop是自学的,当时觉得全世界比我Photoshop强的人也不在多数。七年前,
- 看了不少朋友的个人网站,有一个小问题,似乎很多朋友都忽略了,那就是版权声明的写法。虽然那只是一小行字,不过作为设计师也好,作为个人的爱好也好
- 每周的《午间欢乐购》和《周末疯狂购》,已经成为视觉组的固定需求。从开始接触到现在5个月的时间里,思维也和这些小小banner逐渐碰撞出火花。
- 我们先看一下JavaScript中关系运算符的类型转换规则:关系运算符(<、>、<=、>=) 试图将 express
- domainname.asp<form method="POST"> &nb
- 1 create table test(coltest varchar(20))2 实现这一功能 的 sql 语句 s
- Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。 一、启动和关闭O
- 本文说明向外扩展数据库系统的两个选项,从而实现更高的可扩展性:水平数据划分和垂直数据划分当我提到向外扩展数据库系统时,我实际上只是讨论对数据