提到伪类,在人们的印象中最常用的不过是:hover、:active、:link、:visited,还有css3里的常用伪类选择器:last-child、:first-child、nth-child(n)等等! w3c上对伪类和为元素的定义分别为: 伪类:伪类用于向某些选择器添加特殊的效果。伪元素:伪元素用于将特殊的效果添加到某些选择器 css3为了明确伪类和伪元素的区别,已经明确了单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素 span:hover //伪类 span::before //伪元素 但是,为了保证兼容性,现在伪元素普遍还是使用单引号。下面我将用单引号的形式给大家做介绍 常见的伪类(pseudo-classes)和伪元素(pseudo-elements) HTML中常见伪类和伪元素的区别 伪元素的兼容性 Chrome 2+, Firefox 3.5+ (3.0 had partial support), Safari 1.3+, Opera 9.2+, IE8+ (with some minor bugs), 几乎所有的移动浏览器。 伪元素:before和:after的定义和基本用法 定义: :before 选择器在被选元素的内容前面插入内容。 :after 选择器在被选元素的内容后面插入内容。 使用: 使用 content 属性来指定要插入的内容。 content有几个比较有用的值:[String] – 使用引号包括一段字符串,将会向元素内容中添加字符串。示例: a:after { content: "↗"; } attr() – 调用当前元素的属性,可以方便的比如将图片的 Alt 提示文字或者链接的 Href 地址显示出来。示例: a:after { content:"(" attr(href) ")"; } url() / uri() – 用于引用媒体文件。示例: h1::before { content: url(logo.webp); } counter() – 调用计数器,可以不使用列表元素实现序号功能。具体请参见 counter-increment 和 counter-reset 属性的用法。示例: h2:before { counter-increment: chapter; content: "Chapter " counter(chapter) ". " } |