6

一部のブラウザが同じcssレイアウトコマンドに対して特別な招待を必要とする理由について、私は興味があります。誰かが私を啓発できますか?

例:CSS-formatting:box-sizing:border-box; (寸法については、私の箱の境界線を考慮してください!)

今ここにFirefoxとサファリが来ます、そして彼らは特別な招待を必要とします:

-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;

私のような単純な猫にとって、これは次のように思えます。

  1. ブラウザ:私があなたに与えた寸法は私の箱の境界線を数えます!
  2. Firefox:これも重要です。
  3. Safari:それはあなたにも当てはまります。

つまり...なぜですか?まったく同じ構文です!同じことを特定のブラウザに伝えなければならないのはなぜですか?別の構文が必要かどうかはわかりますが、まったく同じですか?!彼らは自分の名前が呼ばれるのを聞くのが好きですか?

4

5 に答える 5

2

これは、さまざまなブラウザー エンジンがさまざまなことをサポートしている結果です。これらのディレクティブは、ブラウザのレンダリング エンジンに、まだ開発中またはテスト中の機能、または CSS 仕様の標準ではない機能を使用しようとしていることを伝えることを目的としています。すべてのブラウザーが異なるレンダリング エンジンを使用しているわけではないことに注意してください。

于 2012-11-02T13:45:16.647 に答える
1

これらのプロパティは W3C によって標準化されておらず、まだドラフト段階であるため、ベンダーは独自のバージョンを実装しています。これは、プレフィックスを使用して他のブラウザーの実装との衝突を回避するか、仕様が完成した後の最終的な実装です。

于 2012-11-02T13:44:35.397 に答える
0

上記の回答への追加。すべてのプロパティを一覧表示するときは、次のように標準プロパティを最後に一覧表示します。

-moz-border-radius: 10px 5px;
-webkit-boder-radius: 10px 5px;
border-radius: 10px 5px; 

このようにすると、古いFirefoxは最初のルールを使用し、他のルールを理解しないため、他のルールを無視します。これは、古いSafariの場合と同じです。

border-radius問題は、標準プロパティを最初にリストするときにプレフィックスなしでサポートする最近のバージョンのブラウザにあります。

border-radius: 10px 5px; 
-moz-border-radius: 10px 5px;
-webkit-boder-radius: 10px 5px;

Safariでこのサイトを閲覧すると、最初に標準プロパティが使用され、次にプロパティで上書きされ-webkit-ます。問題は、2つの実装の仕様が異なることです。標準のプロパティでは、左上と右下の角が30ピクセルの丸みを帯び、右上と左下の角が10ピクセルの丸みを帯びています。

一方、-webkit-prefixedプロパティは、すべてのコーナーを同じにします。サイズが30x10pxの省略記号です。

于 2012-11-02T13:57:14.507 に答える
0

最初は、各ブラウザー メーカーが css スタイルが良いアイデアだと判断しましたが、標準はありませんでした。各ブラウザーの製造元は、プレフィックスを使用して独自の方法で css スタイルを追加しました。最終的に、これらのスタイルのほとんどは CSS3 標準になりました (通常は、ブラウザー メーカーが既に行っていたことに基づいています)。ただし、古いブラウザーは CSS3 標準をサポートしていなかったため (プレフィックス付きの標準のみ)、各ブラウザーの構文を配置する必要があります。 /プレフィックス。

于 2012-11-02T13:45:26.653 に答える
0

これは、この機能がまだ開発中であり、標準で規定されているすべての機能をサポートしていない可能性があることを意味します

于 2012-11-02T13:46:07.053 に答える