Internet Explorer 上的 :before 和 :after 选择器

Posted

技术标签:

【中文标题】Internet Explorer 上的 :before 和 :after 选择器【英文标题】::before and :after selectors on internet explorer 【发布时间】:2015-01-04 06:26:22 【问题描述】:

我有一些使用 :before 和 :after 选择器的 CSS 代码:

.caption-wrap .line-3:before,
.caption-wrap .line-3:after 
    content: " ";
    position: absolute;
    width: 50px;
    height: 5px;
    border-top: 1px solid #FFFFFF;
    border-bottom: 1px solid #FFFFFF;

.caption-wrap .line-3:before 
    margin: 7px 0 0 -60px;

.caption-wrap .line-3:after 
    margin: 7px 0 0 10px;

幻灯片 html 标记:

<li>
    <img src="images/mountains.jpg" class="parallax-bg" >
    <div class="overlay"></div>
    <div class="container hidden-xs">
        <div class="caption-wrap">
            <p class="line-1">we are</p>
            <h1 class="line-2 dashed-shadow">
                MINIMAL</h1>
                <h4 class="line-3">Design | Develpment | Success</h4>
                <p class="line-5">
                    <a href="#">codenpixel</a>
                    <a href="#">retrograde</a>
                </p>
                <p class="line-6">2014</p>
        </div>
    </div>
</li>

在 Chrome 上看起来像这样:

和 Internet Explorer:

在 Internet Explorer 开发人员工具上,所有这些 CSS 代码都是删除线,所以我想这是 忽略。有没有办法让这个 css 在 Internet Explorer 中工作?

网站link。

【问题讨论】:

不改变 HTML。您需要在 .caption-wrap 的任一侧放置一个元素 哪个版本的IE?我们可以看到你的标记吗? 我在所有最新版本的 IE 8、9、10 和 11 中都有这个问题 没有标记,重现问题的示例,很难找到解决问题的解决方案。您是否使用一些代码检查工具检查了页面?两个伪元素是否都显示在 IE 中的同一位置? 你是不是故意拼错了development? 【参考方案1】:

伪元素不需要绝对定位。您可以在伪元素上使用display:inline-block; 实现所需的布局:

DEMO

CSS:

.caption-wrap .line-3:before,
.caption-wrap .line-3:after 
    content: " ";
    display:inline-block;
    width: 50px;
    height: 5px;
    border-top: 1px solid #FFFFFF;
    border-bottom: 1px solid #FFFFFF;
    margin: 7px 10px 0;

在 IE 11 上测试,但这应该适用于 all versions supporting pseudo elements (IE8 +)

【讨论】:

以上是关于Internet Explorer 上的 :before 和 :after 选择器的主要内容,如果未能解决你的问题,请参考以下文章

Internet Explorer 上的 :before 和 :after 选择器

Internet Explorer 上的 CSS 错误阴影效果(纸张卷曲)

Jquery 无法读取 Internet Explorer 上的自定义标记文本

Internet Explorer 和 Firefox 上的 YouTube IFrame API

flex 在 Internet Explorer 上的工作方式不同

字符串上的 jQuery 选择器不适用于 Internet Explorer