web-dev-qa-db-ja.com

CSSのスマイリーフェイス「:)」とはどういう意味ですか?

プロジェクトでこのCSSコードを見つけました。

html, body { :)width: 640px;}

私は長い間CSSを使ってきましたが、この ":)"コードを見たことはありません。それは何かを意味するのですか、それとも単なるタイプミスですか?

315
Mark

javascriptkit.comの記事 から、IE 7以前のバージョンに適用されます:

プロパティ名の直前にアスタリスク(*)などの非英数字を追加すると、そのプロパティは他のブラウザではなくIEに適用されます。

また、<=IE 8のハックもあります:

div {
  color: blue;      /* All browsers */
  color: purple\9;  /* IE8 and earlier */
 *color: pink;      /* IE7 and earlier */
}

しかし、それは良い考えではありません、彼らは検証しません。 条件付きコメントの特定のバージョンをターゲットにする場合は、いつでも自由に作業できます。

<!--[if lte IE 8]><link rel="stylesheet" href="ie-8.css"><![endif]-->
<!--[if lte IE 7]><link rel="stylesheet" href="ie-7.css"><![endif]-->
<!--[if lte IE 6]><link rel="stylesheet" href="ie-6.css"><![endif]-->

しかし、ハックを実際に見たい人は、最新バージョンのIEで このページ を開いてください。次に、開発者モードに移動します F12。エミュレーションセクション(ctrl+8)ドキュメントモードを7に変更し、何が起こるかを確認します。

enter image description here

ページで使用されるプロパティは:)font-size: 50px;です。

274
revo

IE7以前のブラウザをターゲットとするCSSハックのように見えます。これはis無効なCSSであり、ブラウザはこれを無視する必要がありますが、IE7以前ではこのルールを解析して尊重します。このハッキングの実際の例を次に示します。

CSS

body {
    background: url(background.png);
    :)background: url(why-you-little.png);
}

IE8(ルールを無視)

Example 1 - IE8

IE7(ルールを適用)

Example 1 - IE7

スマイリーの顔である必要はないことに注意してください。 BrowserHacks 言及:

これらの文字の任意の組み合わせ:
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |
[プロパティ名が機能する前に] Internet Explorer≤7


GAHホットドッグスタンドの例はこちら

169
Salman A