4

CSS3Pieを使用して、無効なCSSプロパティを使用するIEで丸い角を作成しています

behavior: url(/PIE.htc);

この宣言をメインのCSSに保持すると、他のブラウザーはこれを必要としない場合でもこの.htcファイルをロードしますか、それともIEのみがこのファイルをロードしますか?

behavior: url(/PIE.htc);パフォーマンスの観点から、IEの条件付きスタイルシートを分離することで維持するメリットはありますか?

<!--[if lt IE 9]>
        <link rel="stylesheet" type="text/css" href="ie8-and-down.css" />
<![endif]-->

コード全体は次のようになります

border: 1px solid #696;
padding: 60px 0;
text-align: center; width: 200px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background: #EEFF99;
behavior: url(/PIE.htc);
4

3 に答える 3

11

仕様によると、ブラウザーは認識できないプロパティ名を持つ宣言を完全に無視する必要があります。これは、理論的にbehaviorは、 は IE 専用のプロパティであるため、url()解析されるべきではなく、ファイルは IE 以外のブラウザによってダウンロードされないことを意味します。

IE9 と Firefox 4 でテストを実行し、CSS3 PIE タブのデモをロードしました。F12 開発者ツールと Firebug がそれぞれのネットワーク タブに表示するものを次に示します。Firebug が/PIE.htcファイルを要求しようとしていないことを報告していることに注意してください。つまり、Firefox は、スタイルシートで宣言されていても、behaviorプロパティを認識しないため、ファイルをロードしませんでした。

IE9 (F12 開発者ツール)

Firefox 4 (ファイアバグ)

そのプロパティを条件付きコメント付きの IE 専用スタイルシートに移動する唯一の理由は、非標準のプロパティやハックでメインのスタイルシートを汚染したくない場合です。

于 2011-04-10T05:31:24.090 に答える
1

必要はありません。このプロパティは、IEとbehavior同様に、他のすべてのブラウザに対しても無効です。-moz-border-radius後者の方法を使用してIE9が動作をロードしないようにすることもできますが、市場シェアは現時点では十分ではありません。

于 2011-04-10T03:53:58.173 に答える
1

かなり不明確なトピックのように見えるため、更新された回答 (2014 年 2 月)。

それが機能する方法は、「動作」プロパティを介して HTC ライブラリのロードをトリガーすることです。

"behavior" は IE6-9 プロパティのみです。MS の公式 Web サイトを参照してください

したがって、「behavior」プロパティは、IE6-9 で使用された場合にのみ、何かのロードをトリガーできます。

このライブラリは、IE10+ やその他のブラウザー (つまり、Chrome、Firefox、Safari など) ではロードしないでください。

@BoltClock と同じ方法でテストしたところ、期待どおり、IE6-9 ブラウザーを使用していないときに htc も js も読み込まれないことがわかりました。IE8、IE9、Chrome 32、IE11、および Firefox 27 でテストしました (以下のスクリーンショットを参照)。

これをさらにテストするためにもう少し時間を費やすようにします。当面は、たとえば、公式のデモ ページcss3pie.com/demos/ & browserstack.com (無料試用版があります) を使用して、誰でもテストできます。

Chrome、Firefox、および IE11 は、期待どおりに css3pie js ライブラリをロードしていません。 クローム 12

Firefox 32

IE11 注: 「dynamisch skripts」ディレクトリには、ページ内に直接追加された JavaScript が一覧表示されます (個別の js ファイルへの参照はありません)。

予想どおり、IE9 は css3pie js ライブラリをロードします。 IE9

予想どおり、IE8 は css3pie js ライブラリをロードします。 IE8

注 1: IE8 または IE9 用にロードされたライブラリが異なることに注意してください。

注 2: chrome、firefox、および IE11 は css3pie ライブラリをロードしませんが、いくつかの css3pie CSS をロードする可能性があります。これにはさらにテストが必要になる場合があります。

于 2014-02-21T17:13:40.787 に答える