如何仅为 ie7 和 8 加载 css3 pie?但不是为了 9
Posted
技术标签:
【中文标题】如何仅为 ie7 和 8 加载 css3 pie?但不是为了 9【英文标题】:How to load css3 pie only for ie7 and 8? But not for 9 【发布时间】:2012-01-22 15:34:23 【问题描述】:这是使用 CSS3 PIE 的 css
border: 1px solid #696;
padding: 60px 0;
text-align: center; width: 200px;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
background: #EEFF99;
behavior: url(/PIE.htc);
特别
behavior: url(/PIE.htc);
我的问题是这个 PIE.htc 会被所有浏览器下载还是只能在 IE 7 和 8 中下载?
我也需要在 IE7 和 8 中显示圆角。所以我想而不是使用 Modernizr 并为圆角编写另一个类和图像,CSS3 PIE 将是一个很好的解决方案,因为每当我们更改边框的颜色和厚度以及元素的高度时,PIE.htc 将在 IE7 和 8 中呈现相同的.但在 Modernizr 和图像的情况下,我们将不得不使用为新的上传新图像,我们将不得不更改并上传新的更改。
因为我只为此使用 Modernizr,所以我无法加载条件注释,即使我不需要,它也会为每个浏览器加载。所以我想如果 CSS3 PIE 有利于灵活性,如果它只加载到 IE7 和 8,那么在这种特殊情况下使用会很好。
【问题讨论】:
你不是已经问过这个了吗?我的“详细分析”还不够吗? ***.com/questions/5609651/… 哦,是的,我忘了。现在我应该删除这个吗? .但是 michielvoo 的回答对我也很有用,我也在这个问题上与 Modernizr 进行了比较。也许我应该改变标题? 您不必删除它。更改标题很好,或者如果您希望我将其作为副本关闭,也可以。 简而言之:是的,它将为 IE9 加载。但不适用于 IE10+。 MS official website: "Internet Explorer 10 标准和怪癖模式已删除对元素行为和 html 组件 (HTC) 的支持,以提高互操作性和与 HTML5 的合规性。" 【参考方案1】:behavior
不是有效的 CSS 属性,将被 Internet Explorer 以外的浏览器忽略。他们将不会下载 PIE.htc 文件。
您提到您无法加载条件注释,但如果您可以使用条件 cmets (?),那么您可以执行以下技巧:
<!doctype html>
<!--[if IE 7]><html class="ie7"><![endif]-->
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if gt IE 8]><!--><html><!--<![endif]-->
<head>
在这种情况下,您使用的是条件 cmets,但您没有在 cmets 中加载任何内容。您只是将一个特定于浏览器的类添加到<html>
-元素。现在您可以在 CSS 中执行此操作:
.some-class
border-radius: 12px;
.ie7 .some-class, .ie8 .some-class
behavior: url(/PIE.htc);
【讨论】:
我说我不能在有条件的情况下加载 Modernizr,因为它不会工作。您的解决方案似乎不错。behaviour
可以被 IE9 检测到吗?
您不能将上述示例与 IE 仿真模式结合使用(例如 <meta http-equiv="X-UA-Compatible" ... />
标签)。见 cmets here。
this forum post 说“行为文件永远不会被非 IE 浏览器下载。但是,它将被所有 IE 版本下载”。但是我只是在 IE11 上测试过,它没有加载 PIE,这看起来不错。
On MS official website: "Internet Explorer 10 标准和怪癖模式已删除对元素行为和 HTML 组件 (HTC) 的支持,以提高互操作性和与 HTML5 的合规性。"以上是关于如何仅为 ie7 和 8 加载 css3 pie?但不是为了 9的主要内容,如果未能解决你的问题,请参考以下文章
CSS3 + HTML5SHIV + CSS3PIE Border-radius 不适用于 IE8,但适用于 IE7、9、10
Bootstrap Carousel - CSS3 PIE 打破指标循环