• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リセットCSSはブラウザではどう処理されているのか)

リセットCSSの処理とは?

このQ&Aのポイント
  • リセットCSSは、ブラウザ内での要素のマージン・パディングの初期値を0にするためのCSSです。
  • ユニバーサルセレクタによる方法では、対象のWebサイトで使われていないタグのマージン・パディングも0になります。
  • 指定されていないタグは、ブラウザに登録されている初期値が適用されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

>どこかの誰かが各ブラウザのデフォルトCSSを研究し作り出したリセットCSSを、何も考えずにそのまま自分(自社)のサイトに使っているだけなのでは。  でしょうね。  もし、ここにない要素が出てきたらどうするのだろう・・?ブラウザはその仕様になくても、過去の仕様や廃れた仕様にも対処することが、強く求められています。  *セレクタひとつ書いてしまったために、スタイルシートがとても複雑になってしまった経験があるのでは?  スタイルの照合手順は、DeFellさんが紹介された「意外と知らないCSSセレクタの照合順序とパフォーマンス( http://19-d.com/posts/view/116 )」に書かれているアルゴリズムとは違うはずです。  ⇒6.4.1 カスケード処理の順序(Cascading order)( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html#cascading-order )  が、プログラムするときの順当な手段でしょう。  コンピューターがテキストデータを読み取るのは大きな時間はとりませんが、ソートは多少時間を食います。それ以上にデータのテーブルを保存するのは大きな負担となりますから、最初にそれぞれの要素に対するスタイル一覧を作成してHTML内を検索するという手段はとりえません。貧弱なコンピューターで大きなページを処理するとハングする(^^) >例えば、そのWebサイトでh1、h2が使われていたとしたら、使われていないh3やh4などのマージン・パディングも0になるようにブラウザ内で処理されているのでしょうか?  ないでしょう。  描画に当たって、h3やh4がでてこなければ、スタイルシートを参照もしないでしょう。どうせ、他の部分でスタイルシートを読んでいるときには読みますが、単純に読み飛ばされるでしょう。

settu1300
質問者

お礼

ありがとうございました。 本当に他人のリセットCSSを使い回していただけなんですね。もしかしたら、一部のプロのWebデザイナーは独自に作り出しているかもしれませんが・・・ また、全称セレクタによるリセットCSSの適用対象は、デフォルトCSSで使われているセレクタ、そのサイトで使われているセレクタ(タグ)ということで、そのどちらにも出てきていないセレクタ(タグ)は仰るように参照しない読み飛ばすということですかね。 しかしまあ、ブラウザのその辺りの処理はこのカテゴリーではなくプログラミングの方だと思うので、あまり深い入りはしないようにしておきます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.2

ブラウザの速度がテーマになったページを紹介します。 ★同じことを言っているのですが、ブラウザがどう処理するのか (要は右から左です) ◎意外と知らないCSSセレクタの照合順序とパフォーマンス  http://19-d.com/posts/view/116 ◎30分でできる!Webサイトを高速化する6大原則  http://ascii.jp/elem/000/000/457/457749/index-3.html ◎ウェブページ高速化に効果的なCSSセレクタ  http://weboook.blog22.fc2.com/blog-entry-271.html ★上記手法の時間的検証 ◎CSSセレクタによる高速化、実際のところ  http://tech.naver.jp/blog/?p=178 ◎CSSセレクタの高速化の話を検証  http://os0x.hatenablog.com/entry/20100518/1274204934 つまり、できるだけ省略し短い方が処理速度は速くなる。ということで、settu1300さんの疑問は推測できませんか?ブラウザの速度はブラウザの処理と関係します。

settu1300
質問者

お礼

ありがとうございました。ご紹介して頂いたサイトは全て拝見しました。もっとよく理解してから質問したら良かったです。何だかよく分からない質問で申し訳ありません。

全文を見る
すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

いいえ、全く考え方が違います。 ブラウザは、HTMLを受け取ったら、その要素に適用されるべきセレクタをすべて探して  出所、詳細度、出現順番、最重要宣言でソートして、適用されるべきスタイルを見つけ出します。とても簡単で分かりやすい仕組みです。  カスケーディングスタイルシートの名前にも入っているくらいの基本的--常識です。  ⇒値の割り当て、カスケード処理、継承( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html ) >ユニバーサルセレクタではなく以下のように指定してある場合は、  全称セレクタとタイプセレクタの違いは、詳細度が異なります。  全称セレクタは、CSS2以降、基点となるセレクタにつなげるセレクタを書くルールになったために、新たに導入されたセレクタで、詳細度は0です。  DOM上で html  └body    └ div    class="section"      └ h1        └ span style="color:red" があれば、スタイルシートを検索します。  spanに関しては、継承されるプロパティをすべて拾い出します。ここでは、スタイル属性で指定されているcolorは詳細度が 1 0 0 0 ですから、他のすべてのスタイルを上書きします。ただし、出所でユーザーが最重要宣言をしている場合は、そちらが上位です。  とても単純で分かりやすい仕組みです。  リセットスタイルは、なんであれ使わないほうが良いです。結果的にすべてを再設定する必要がでてきますから、スタイルが煩雑でメンテナンス困難になります。  リセットが必要な人の多くは、HTMLには文書構造を、プレゼンテーションはスタイルシートでと言う根本を理解していない人が多いですね。デザインためにHTML書いてる。  blockquoteなんて、登場すれば何もしなくても一段下げて区別してくれるほうが便利です。  せっかくブラウザがデフォルトで持っているスタイルシートを活用しないのは無駄でしょう。  ⇒附記A: HTML 4.0におけるスタイルシートの例( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/sample.html )

settu1300
質問者

補足

ありがとうございました。デフォルトCSSをそのまま利用した方が楽なんですね。 ご回答を受けて質問なのですが、前者のリセットCSSの存在意義は分かるのですが、後者のものはサイトのデザインによって適用するセレクタを変えていくべきだと思うのですが、どこのサイトもそのデザインによらず、ほぼ同様のリセットCSSを使っています。それって全く意味がないのではありませんか? どこかの誰かが各ブラウザのデフォルトCSSを研究し作り出したリセットCSSを、何も考えずにそのまま自分(自社)のサイトに使っているだけなのでは。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • リセットCSSの一般的な方法

    Webサイトを作成しているのですが、ブラウザごとの差異を無くすリセットCSSというのを知りました。 調べてみたら、いくつか方法があるようですが、一般的にどのような方法でリセットCSSを行えば良いのでしょうか? Webサイトのデザインによって、リセットCSSの方法は変えたりするものなのでしょうか? また、私は、まだブラウザごとで、どのセレクタとプロパティで差異が出るのか把握しておりませんが、リセットCSSをする場合、必ずリセットするべきセレクタとプロパティはありますか? dic、span、pのmarginやpaddingなど、他にありますか?

    • ベストアンサー
    • CSS
  • CSSでの幅、長さなどの指定

    CSSのソースをみると、 ボーダーの幅、ボックスの幅、マージン、パディングと いった大きさをピクセルではなくemや、%で指定している のをよく見かけますがデザイン上は、どちらを使うのが 正しいですか? 原則としてはピクセルを使うのが正しいと Webサイトや書籍でも書いてあるのですが、それがなぜなのかも よく分かりません。 この疑問について教えていただけたら幸いです。

  • CSS3の対応

    CSS3ってどれくらい皆さんはどれくらいつかっていますか教えてください 質問1 スマホサイトでCSS3は全力で使えるんですか?(アンドロイドも) 質問2 スマホサイトはCSS2.1のセレクタだけでつくってもいいですか?(かっこ悪いですか?) 質問3 みなさんはパソコン用webサイトでCSS3はどのくらいつかっていますか? 質問4 パソコン用WEBサイトで隣接セレクタと子供セレクタなどIE6が表示できないセレクタはつかっていますか? ブラウザIEの対応なのですがIE9が丸角とbox-shadowくらいですよね? IE6~IE8が亡霊のように残っているので困っています

    • ベストアンサー
    • CSS
  • CSSエラーについて教えて下さい。

    ホームページのCSSエラーをW3Cでチェックしました。 すると6つのエラーが出ました。 それぞれの意味がわからないので教えていただけませんでしょうか。 該当のファイルはreset.cssだと思いますので、コピペします。 8 body 文法解析エラーが発生しました ;*font-size:small; 8 body 文法解析エラーが発生しました ;} 22 input, textarea, select 文法解析エラーが発生しました {*font-size:100%; 22 input, textarea, select 文法解析エラーが発生しました ;} 24 pre, code, kbd, samp, tt 文法解析エラーが発生しました ;*font-size:108%; 28 dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, input, textarea, p 文法解析エラーが発生しました [:100%;} /* ƒfƒtƒHƒ‹ƒg’l */ /**************************************************/ div] /**************************************************/ /* ブラウザ別デフォルト値リセット */ /**************************************************/ /* リセット */ /**************************************************/ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;} body{font:13px/1.231 "MS Pゴシック",arial,helvetica,clean,sans-serif;*font-size:small;} table{border-collapse:collapse;border-spacing:0;font-size:inherit;font:100%;} td{vertical-align:top;} fieldset,img{border:0;} address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} strong{font-weight:bold;} ol,ul,li{text-align:left;list-style:none;} caption,th{text-align:left;} h1,h2,h3,h4,h5,h6{font-size:100%;} q:before,q:after{content:'';} abbr,acronym{border:0;font-variant:normal;} sup{vertical-align:text-top;} sub{vertical-align:text-bottom;} input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;} input,textarea,select{*font-size:100%;} legend{color:#000;} pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;} /* デフォルト値 */ /**************************************************/ div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,textarea,p{text-align:left;} h1,h2,h3,h4,h5,h6,dt{font-weight:bold;} p{line-height:1.6em;} img{display:block;} body{color:#333;background:#FFF;text-align:center;} a:link{color:#069;} a:visited{color:#069;} a:hover{color:#F60;} a:active{text-decoration:none;} /**************************************************/

    • ベストアンサー
    • CSS
  • IEでCSSが適用されません。

    現在作成中のページがあるのですが、IEで作成状況をF12で確認すると、 全くCSSが反映されず、グチャグチャに表示されてしまいます。 FireFoxでは、問題なく表示されるのですが・・ div, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote { font-size:100%; font-weight:normal; list-style-image:none; list-style-type:none; margin:0; padding:0; } dl { font-size:100%; font-weight:normal; list-style-image:none; list-style-type:none; margin:0; padding:0; } dt, dd { margin-bottom:2px; margin-top:2px; } 上記をCSSに組み込んで、リストタグの中黒を消すようにしているのですが、IEでは中黒が表示されたままです。 どうすれば良いのでしょうか。 教えて下さい!!

  • CSSが動作しないブラウザのために、代わりに表示させる内容を指定したい。

    スクリプトが動作しないブラウザのために、代わりに表示させる内容を指定する場合は <noscript>~</noscript>のタグを使用しますがCSSが動作しないブラウザのために、 代わりに表示させる内容を指定する場合はどうすればよいのでしょうか? 例:NEC Webサイト

    • ベストアンサー
    • HTML
  • VBAでテキストボックスに値を入れたい

    お世話になります。 エクセルのVBAで、WEBブラウザ内にあるテキストボックスに 文字を入れたいと思っております。 以下のようなページは処理できたのですが、 ・対象ページのブラウザのソースを見ると「textarea」のタグがあり、  それを取得して、「value」に文字を入れる 「スタイルシート」で書かれたページの処理の方法がわかりません。 お手数ですが、ご存じの方宜しくお願いします。

  • CSSについて

    下記ののCSSでmainContentの780px を250pxと530pxに分割する方法を教えてください。 DW CS3を使用しています。 よろしくお願いいたします。 <style type="text/css"> <!-- body { background: #666666; margin: 0; /* 複数の異なるブラウザの初期設定値に対応するため、body エレメントのマージンと余白を 0 にすることをお勧めします */ padding: 0; text-align: center; /* これにより、IE 5* ブラウザではコンテナが中央揃えになります。そして、テキストは、#container セレクタの初期設定である左揃えに設定されます */ color: ffffff; background-color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 100%; } .oneColFixCtrHdr #container { width: 780px; /* 最大幅である 800px より 20px 小さくすることにより、ブラウザクロームの使用が可能となり、水平スクロールバーが表示されなくなります */ background: #000000; margin: 0 auto; /* 自動マージン(幅と連動)により、ページが中央揃えになります */ border: 0px solid #000000; text-align: left; /* この設定は body エレメントの text-align: center より優先されます。 */ } .oneColFixCtrHdr #header { padding: 0 0px 0 0px; /* この余白は、その下に表示される div のエレメントの左揃えと一致します。#header でテキストの代わりにイメージが使用される場合は、必要に応じて、余白を削除してください。 */ background-color: 000000; } .oneColFixCtrHdr #header h1 { margin: 0; /* #header div の最後のエレメントのマージンを 0 に設定することにより、マージンの相殺(div 間の原因不明のスペース)が回避されます。div の周囲に境界線が適用されている場合は、境界線によってマージンの相殺が回避されるため、この操作は不要です */ padding: 10px 0; /* マージンの代わりに余白を使用して、エレメントを div の端に接触しない位置に維持することができます */ } .oneColFixCtrHdr #mainContent { padding: 0px; background-color: #000000; } .oneColFixCtrHdr #footer { padding: 0 0px; background-color: #444444; } .oneColFixCtrHdr #footer p { margin: 0; /* フッターの最初のエレメントのマージンを 0 に設定することにより、マージンの相殺(div 間のスペース)が回避されます */ padding: 10px 0; /* このエレメントの余白により、マージンの相殺を発生させることなく、マージンの効果とまったく同じように、スペースが設定されます */ } --> </style>

  • <H>タグの見出しと<P>タグの本文の間隔について

    初めてのホームページ作成に挑戦してます。 スタイルシートでデザインを調整しているのですが、 <H>タグの見出しと<P>タグの本文の間隔をCSSで二つの要素のマージンを0、パディング0にしても文字一つ分の間隔が空きます。ある一定の間隔以上縮めることができません。 また<H>タグと<TABLE>タグの間隔も<P>タグ以上に大きく間隔が開いてしまいそれ以上縮めることができなくて困ってます。 こういうものなんでしょうか? <DIV>タグなら間隔を好きなように調節でます。全て<DIV>タグで見出しも本文も書きたいくらいです。表は無理ですが・・・。

    • ベストアンサー
    • HTML
  • ブラウザのキーストアの個人証明書をつかって認証

    HTML5で、<keygen >というタグによって公開鍵ペアの証明書が発行される機能で、あるサイトの認証をしたいのですが、できますでしょうか。 試しましたらフォームで送信処理すると、公開鍵はPOSTで送信され、秘密鍵はブラウザのなかに保存されました。 ということは、このブラウザで、あるサイトをアクセスしたとき、POSTで送った公開鍵を登録したサイトが閲覧でき、登録していない場合はアクセスできないという仕組みを作ることはできるんでしょうか。 できるのでしたらその方法を知りたいので、参考になる本とかウエブサイトがあれば教えてほしいです。