2

这是使用 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,那么在这种特殊情况下使用会很好。

4

1 回答 1

9

behavior不是有效的 CSS 属性,将被 Internet Explorer 以外的浏览器忽略。他们不会下载 PIE.htc 文件。

您提到您无法加载条件评论,但如果您可以使用条件评论(?),那么您可以执行以下技巧:

<!doctype html>
<!--[if IE 7]><html class="ie7"><![endif]-->
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if gt IE 8]><!--><html><!--<![endif]-->
<head>

在这种情况下,您使用的是条件注释,但您没有在注释中加载任何内容。您只是将特定于浏览器的类添加到 -<html>元素。现在您可以在 CSS 中执行此操作:

.some-class {
  border-radius: 12px;
}
.ie7 .some-class, .ie8 .some-class {
  behavior: url(/PIE.htc);
}
于 2011-12-17T15:19:16.903 回答