0

重複の可能性:
CSS リセットですべての要素をカバーするために「*」を使用しないのはなぜですか?

現在私は使用しています:

*{
    margin:0;
    padding:0;
}

しかし、なぜ人々が使い続けるのかはわかりません:

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
    margin:0;
    padding:0;
}

ほとんどのサイト (このサイトを含む) が 2 番目の方法を使用している特定の理由はありますか? そのようにCSSファイルサイズを大きくするには、非常に正当な理由があるに違いありません

4

2 に答える 2

2

ほとんどの Web 開発者がそのような要素セレクターの長いリストを作成することに、私は実際には同意しません。実際、どの Web 開発者も、CSS をリセットする最善の方法についてさまざまな見解を持っています。

たとえば、「トリポリ リセット」はユニバーサル セレクター * を使用します。

この記事では、CSS をリセットするほんの一握りの方法について詳しく説明します。

http://sixrevisions.com/css/a-comprehensive-guide-to-css-resets/

より具体的にする理由の 1 つは、上記の回答が述べたようにパフォーマンスだと思います (最近のブラウザーは CSS の解析がかなり高速ですが)。さらに、開発者は必要に応じてより具体的にすることもできます。たとえば、border-collapse特定のタイプの要素にのみ適用されるなどの一部の CSS プロパティです。

于 2012-03-05T18:30:34.800 に答える
-1

これはパフォーマンスの問題です。高性能フロントエンドに関して広範なベンチマークと分析を行った Steve Souders の著作を読むことを強くお勧めします。基本的に、 * 演算子を使用する場合、ブラウザーは DOM の多くのマイニングと分析を行う必要がありますが、演算子を明示的に指定すると、ブラウザーはそれを行う必要がなくなります。

これは、SQL クエリで SELECT * を実行するのと比較して SELECT id を実行するのと非常によく似ています。SELECT * を実行すると、データベースが列名を検索する際に追加のオーバーヘッドが発生します。これと同じこと。

これに関する Steve Souders の作業の例については、こちらを参照してください。

于 2012-03-05T18:27:32.827 に答える