p.description::before { content: "Figure number " counter(image) ": "; counter-increment: image; }那么这会产生什么?首先,我们告诉HTML来创建“image”计数器。比如我们可以添加该属性到页面的body。同样我们也可以给该计数器起任何一个名字,只要你想,只要我们常常使用同样的名字引用它:自己试试吧!那么我们想在class为”description”的每一个段落之前添加这一块内容: “Figure number ” — 注意只有我们在引号里面写的内容才会被创建到页面中,所以我们也要添加一个空格!然后,我们就有了counter(image):这将用到我们之前在.post选择器中定义的属性。它默认会从数字1开始。下一个属性在那里表示计数器知道对于每一个p.description,它需要将image计数器增加1 (counter-increment: image)。它并不像看起来的那么复杂,而且还会灰常的有用。::before和::after伪元素常常只使用content属性,来添加一些短语或排版元素,但是这里我们展示了我们如果以一种更加强大的结合counter-reset和counter-increment属性的方式来使用它们。有趣的是: ::first-line 和::first-letter 伪元素可以匹配使用::before伪元素生成的内容,如果存在的话。浏览器支持如果使用单个冒号的话(比如, :first-letter, 而不是::first-letter),这些伪元素被IE8支持(但是不被IE7或6支持)。但是左右其他的主流浏览器都支持这些选择器。结语乏味的讲述终于结束了,现在该你来领悟本文的要义并自己尝试了: 开始通过创建实验性的页面并测试所有的这些选择器,在有疑问的时候返回这里并确保总是遵循W3C的规则,但是请不要只是坐在那里想这些选择器尚未被完全支持你就无视它们。如果你敢于冒险,或者你不害怕放弃之前的遍地无用和非语义化的class和id,为什么不尝试一两个这些强大的CSS选择器到你的下一个项目中呢?我们保证你不会回头的!参考CSS 2 Selectors — W3C CSS 3 Selectors Level 3 — W3C Comparison of layout engines (Cascading Style Sheets) — Wikipedia Generated content, automatic numbering, and lists — W3C 扩展资源Keeping Your Elements’ Kids in Line with Offspring — A List Apart Selectutorial – CSS selectors A Look at Some of the New Selectors Introduced in CSS3 CSS 2.1 selectors, Part 1 and Part 2 CSS 3 selectors explained CSS selectors and pseudo selectors browser compatibility 10 Useful CSS Properties Not Supported By Internet Explorer Styling a Poem with Advanced CSS Selectors 关于作者Inayaili de León 是一个葡萄牙网页设计师。她对网页设计和前端编码有特别的爱好,而且喜欢漂亮和间接的网站。她居住在伦敦。你可以在 Web Designer Notebook 看到她的更多文章并follow her on Twitter。 html教程