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


321

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

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

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


17
私にはタイプミスのように見えます。楽しくなりたいと思っている開発者ですか、それとも彼が探しているコードの領域をマークする方法ですか?
リー

2
@stijnはまだいくつかの奇妙なベンダー固有のコードである可能性があります...
Mark

22
@ series0ne Internet Explorerのアスタリスクハックを見たことがないと思います。
2014

11
これが実際にブラウザーのハッキングである場合は、CSSファイルにこれを説明するコメントを追加する必要があります。
user247702 14

32
私の推測では、コード作成者は次のように入力しました:)フォーカスはIMクライアントにあると考えていました。彼らがIMクライアントをクリックしてそこから先に進んだわけではなかったとき、CSSファイルであるカーソルが置かれていた最後の場所にスマイリーを入力したことに気づかなかった。
ネイサン

回答:


279

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

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

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

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

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

<!--[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、何が起こるかを確認します。

ここに画像の説明を入力してください

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


2
私はセレクターの前で "_"と "*"を知っていましたが、これはあなたが言ったものではありませんでした。
valerio0999 2014

2
@vlrprbttstこれらは、簡単にするために使用される従来の文字です。ただし、英数字以外の値はすべて終了します。
2014

1
salman-aも正解でしたが、少し遅いのですが、私はこの答えを正解としてマークしています。私はこのハックを知っていましたが、常に「*」を使用しました。このページをした人はジョーカーです;)。
マーク

1
私はここで何かを見逃すほど愚かかもしれませんが、なぜ彼は2文字を使用してそれを行うことができるのですか?「1つ以上を追加...」ではなく、「英数字以外を追加」と表示されます。それとも:別の意味ですか?さもなければ、*********************font-size: "150%";等を置くことができませんか?
最大

1
この答えに余分な部分を投げるだけです。正解は正解ですが、これがベストプラクティスではないという事実を見逃しています。原則として、ユーザーベースが使用しているすべてのブラウザで最高のエクスペリエンスを提供するために最善を尽くす必要があります。言うまでもありませんが、私の意見では、それらを作成した会社がもうサポートしていないブラウザーをサポートするべきではありません。
AlienDev 2014

171

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

CSS

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

IE8(ルールを無視)

例1-IE8

IE7(ルールを適用)

例1-IE7

にこにこしている必要はありません。 BrowserHacksの言及:

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


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


62
GAHホットドッグスタンドフラッシュバック
MikeTheLiar 2014

ええ、IE8以降では、IEはそれ自体がCSSに準拠していると見なしており、IE固有のすべてのCSS修正を少しずつ壊しています。(したがって、JavaScriptソリューションに頼る必要があります)
Vernooijをフリップする

39
すべてのサイトで、すべての<IE10ユーザーにホットドッグスタンドのテーマを使用する必要があります。+1
ピートTNT

6
@ikkuh公平に言うと、IE11はかなりまともで準拠したブラウザーです。IEの条件付きコメントのサポートを中止したのには理由があります。
ajp15243 2014

2
@ apj15243ええ、彼らは長い道のりを歩んできて、彼らが続けてくれることを望んでいます、真実は私がまだそれに対する条件付きサポートを必要としていることです、そしてそれはIE11だけでなく10、9と8でもあります。同様にアップデート、XPでIE11を実行しない理由は商業上の理由以外ありません。しかし、それは別の議論です。
2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.