2012-03-05 6 views
0

可能な重複VS:*などのhtml、ボディ、DIV、スパン、アプレット、オブジェクト、IFRAME ...


why don't css resets use '*' to cover all elements?現在私が使用:

*{ 
    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ファイルサイズを増やす理由は非常にあります。

+0

@sandeepいいえ、そうではありません。それはなぜ '*'を使うべきかを尋ねるのではなく、 'html、body、div、... 'を使うのではなく、 –

+0

@sandeep:いいえ、その質問は、CSSリセットでタイプセレクタの長い連鎖の使用については何も質問しません。 – BoltClock

+2

@RobW:その記事では 'CSSはXULコード用であり、汎用HTMLページ用ではありません。汎用CSSに関する情報については、メインのCSSセクションを参照してください。 ' –

答えて

2

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

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

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

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

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

-1

パフォーマンスの問題です。高性能なフロントエンドについては、広範なベンチマークと分析を行っているSteve Soudersの仕事をお読みになることを強くお勧めします。基本的に、ブラウザは、*演算子を使用するときにDOMのマイニングと分析を大量に行う必要がありますが、演算子を明示的に指定すると、行う必要はありません。

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

スティーブ・サウダーズの例としては、thisを読んでください。

+1

何かをお読みになることをお勧めしたら、それにリンクしてください! –

+0

か、Googleを使うことができます.... – christophmccann

+3

Stack Overflowに関する質問者の半数はGoogleを使用していないので、ここではSOLになります。 – BoltClock

関連する問題