请问各位大神,在IE下,有办法解决css :after选择器不兼容的问题吗???急求啊。。

html-css09

请问各位大神,在IE下,有办法解决css :after选择器不兼容的问题吗???急求啊。。,第1张

1.CSS部分

类似这样子的命名:

复制代码代码如下:

.example:before, .example before {}

.example:after, .example after {}

一个有冒号,一个是空格分隔。前者IE8+及其他现代浏览器;后者为IE6-7准备的。

2.HTML部分

如果before/after伪类元素含有content内容(不是空字符),则content内容在HTML标签上呈现(方便IE6/7下获取),例如:

复制代码代码如下:

<div class="example" data-content=""></div>

CSS部分的content属性值应该如下:

复制代码代码如下:

.example:before, .example before { content: attr(data-content)... }

.example:after, .example after { content: attr(data-content)... }

3.JS部分

JS是为IE6/7准备的,所做的事情很简单,网元素内部插入两个元素,标签名为”before“或”after“或同时。方法代码如下:

复制代码代码如下:

var $beforeAfter = function(dom) {

if (document.querySelector || !dom &&dom.nodeType !== 1) return

var content = dom.getAttribute("data-content") || ''

var before = document.createElement("before") //可以根据需要把after或before删除一个

, after = document.createElement("after")//默认会把两个都加上

// 内部content

before.innerHTML = content

after.innerHTML = content

// 前后分别插入节点

dom.insertBefore(before, dom.firstChild)

dom.appendChild(after)

}

4.调用

$beforeAfter(document.getElementById("tip"))//tip是需要的id名

除了它们,还有一些不被常使用的伪类,有:focus,:first-child,:lang等。

而且CSS里不光有伪类,还有伪元素,比如::first-letter,:first-line,:before和:after。

本文中其它伪元素暂且不表,单说:after伪元素。

after顾名思义是在元素后面的意思,实质是在元素之后添加内容。

这个伪元素允许制作人员在元素内容的最后面插入生成内容,需要和content属性一起使用,设置在对象后发生的内容。默认地,这个伪元素是inline行内元素,不过可以使用属性 display 改变这一点。

所有主流浏览器都支持 :after 伪元素,但对于IE来说,只有IE8以上版本支持。

下面举个例子,在CSS代码中插入:

<style type="text/css"

h1:after {content:url(logo.gif)}</styleHtml:<h1标题内容</h1

在显示时,标题内容后会插入一张图片。这就是伪元素:after的作用。

伪元素:after另外一个常用的作用在原来的文章中曾经提到过,有些同学可能还记得,那就是清除浮动。

在CSS中加入带有CSS伪类:after的内容:

.clear:after {height:0content:"."

clear:both

:after 伪元素在元素之后添加内容。

这个伪元素允许创作人员在元素内容的最后面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。

所有主流浏览器都支持 :after 伪元素,但对于IE来说,只有IE8以上版本支持。

h1:after

{

content:url(beep.wav)

}

此样式会在每个 h1 元素之后播放一段声音:

<style type="text/css">

h1:after {content:url(/i/w3school_logo_white.gif)}

</style>

<h1>This is a heading</h1>

这是在h1后面插入一张图片,但IE