CSSプロパティの前のアスタリスクの目的


101

以下は、Yahoo CSSのリセットから取得したものです。誰かがアスタリスクの目的を説明できますか?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}

回答:


117

これはInternet Explorerのバージョン7以下用のブラウザ固有のCSSハックです。

*プロパティ:値

Internet Explorer 7は、プロパティ名の前にアンダースコアまたはハイフンが付いている場合の動作を修正しましたが、その他の英数字以外の文字のプレフィックスはIE6と同様に扱われます。したがって、プロパティ名の直前にアスタリスク(*)などの英数字以外の文字を追加すると、そのプロパティはIEに適用され、他のブラウザーには適用されません。ハイフンとアンダースコアの方法とは異なり、CSS仕様ではアスタリスクを接頭辞として予約しないため、このハックを使用すると、CSS仕様が進化するときに予期しない動作が発生する可能性があります。

* property:valueはIE 7以下のプロパティ値を適用します。将来のバージョンでは機能しない可能性があります。警告:これは無効なCSSを使用しています。

送信元:http : //www.javascriptkit.com/dhtmltutors/csshacks3.shtml



1

IEを除くすべてのブラウザはルールを無視します。それはスターハックとして知られています。IE7は標準モードのルールを無視すると思います。

この場合、フォントルールが設定され、IE 6および場合によっては7で上書きされます。


これはstar-htmlハックではありません。それはセレクターに入り、有効なCSSです。
ボビンス2009年



0

これはCSSハックであり、そのルールはIE7以下にのみ適用されます。

私はそれを使用することをお勧めしませんが、IEの非互換性を修正するより良い方法があります。


0

そのような文字を配置することは、IE 6がスタイルのプロパティを使用できるようにする一方で、より「正常な」ブラウザーからはそれを隠すためのハック/回避策です。

ここから:

簡単に言えば、Internet Explorer CSSパーサーはプロパティの名前を発見しようとすることに過度に積極的であり、実際には先頭の非英数字を無視します。私のテストでは、これは少なくともIE5以降のケースに当てはまるようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.