2012-03-01 14 views
8

先日、私はユーザエージェントのスタイルシートを使って、どのブラウザを(私はクロムを使用しましたが、それはすべてに当てはまると思いますが)フォーマットするHTML要素を見ていました。ブラウザのユーザエージェントスタイルシートで-prefixed CSSプロパティが使用されるのはなぜですか?

blockquote { 
-webkit-margin-before: 1em; 
-webkit-margin-after: 1em; 
-webkit-margin-start: 40px; 
-webkit-margin-end: 40px; 
} 

ルックファイン:

を使用して、私はこれを見つけました。しかし、なぜ、彼らはより多くのこのような何かを使用することができなかった?:

blockquote { 
margin-left:/*whatever*/; 
margin-top:/*whatever*/; 
margin-right:/*whatever*/; 
margin-bottom:/*whatever*/; 
} 

これはちょうど私に起こった、と私はそれがかなり奇妙だと思いました。

+0

できるのですか?私はいつもこれについても疑問に思っていました。箱型の奇妙なものとは何か関係があったと思いました。あなたが得る答えを見て奇妙な。 –

+1

彼らは**ユーザーエージェントのスタイルシート**なので(あなたが強調したように)? – BoltClock

答えて

7

一部のブラウザでは、W3Cによって仕様がまだ確定されていないため、プレフィックスをオフにしてしまうと最終的なW3C標準フォーマットがわずかに異なる可能性があります。ブラウザ間で互換性がなくなったり、同じブラウザのバージョン間で互換性がなくなり、標準的なやり方でフォーマットが変更されます。

これは、複数の引数を持つルールの特定の問題である - 間違って行くことができます主なものは、規格が異なる順序で引数を持つ終わるということです。

border-radius: 3px 3px 6px 6px; 
box-shadow: 3px 3px 6px #fff; 

...等...

プレフィクスを追加すると、最終的な標準が実装と異なる場合、何も破損しないことが保証されます。物事はRTLと縦書きモードで動作する作りを目的とした最近の提案である-webkit-margin-beforeルールはmargin-leftの等価ではないためであると思わmargin-beforeの代わりに、margin-leftについて一部については

が、margin:beforeの、 。このページを参照してください:http://lists.w3.org/Archives/Public/www-style/2010Sep/0625.htmlそれはむしろあいまいなようです。

+1

これは、なぜ彼らが「普通の」CSSプロパティとは全く異なるCSSプロパティを使用しているのかを説明するものではありません。 '-webkit-margin-left'ではなく' -webkit-margin-before'です。 –

+0

編集しましたが、私はそれが質問のポイントではないと思います。質問のタイトルは、 "-prefixed" CSSプロパティについてはっきりと質問します。 –

+0

現在、これらのプロパティはWebKit(* urgh *)の専有物であり、仕様に追加されるまで、ワーキンググループによって公式または推奨されるべきではありません。ベンダープレフィックスは、公式のプロパティの試作版に使用されるだけではありません。彼らはまた、ベンダーがさまざまな理由で遊んだり使用したりするための独自のプロパティーワールドを作成するために使用されています。そのいくつかは最終的に仕様に追加するための提案としてプロモートされるかもしれません。 WebKitではない別の例として、Mozillaはいくつかのプレフィックスセレクタ、プロパティ、および値を使用して、特定の癖をハックします。 – BoltClock

1

開発者がブラウザのデフォルトの要素を確認できるようにする。

関連する問題