• 締切済み

スタイルシートの反映のされ方がIEとFirefoxで異なるのは何故?

■スタイルシート側 #style_a{ color:#000000; } .style_b {} .style_b a:link{ color:#ff0000; } ■HTML側 <div id="style_a"> <div class="style_b"> <a href="***.html">リンク</a> </div> </div> ↑…というようなソースを書いたところ、 Firefox(ver.2.0)では文字色が赤に、 InternetExproler(ver7.0)では黒になってしまいました。 その後、スタイルシートの優先順位は 記述による獲得ポイントによって決まるということを知り、 スタイルシートを以下のように修正することで 両ブラウザとも文字色が赤くなるように解決したのですが、 ■スタイルシート側 #style_a{ color:#000000; } #style_a .style_b {} #style_a .style_b a:link{ color:#ff0000; } このポイント制ってブラウザ毎に 微妙に異なるものなのでしょうか? もしそのあたりを解説してくれている ホームページや書籍などがありましたら 教えていただけませんでしょうか? よろしくお願いいたします。 ・参考としたページ http://www.stylish-style.com/csstec/base/order.html

  • HTML
  • 回答数2
  • ありがとう数0

みんなの回答

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは Firefoxが正解だと思います そもそも <div> <p> <a href="">リンク</a> </p> </div> とあった場合<div>や<p>にcolor設定したとしても『リンク』の文字色を変更することはできません 採用されるのはデフォルト、もしくはa { color: ;} 、a:link { color: ;} で設定されているリンク色になります 参考サイトの優先度というのはすべてのcolor指定が『ここは何色になるでしょう?』に対するものだから(セレクタグループの終わりが『p』か『.toi』になっている)成り立っています 今考えていらっしゃるであろう考え方でいくと『#sample p{color:red;}』を『#sample{color:red;}』と変えたとしてもこれでもまだ獲得ポイントは100ポイントで一番高いので文字色は『赤』になるだろうと考えていることになります でも実際に適用されるのは『.sample2 p{color:blue;}』の青色になります 極端な話・・・ #sample {color:red;} .sample2 {color:blue;} li {color:black;} p {color:yellow;} とした場合には『p{color:yellow;}』が採用されるということです ですので、質問HTMLの場合の『リンク』の文字色の優先度は #style_a .style_b a { color: ; } #style_a div a { color: ; } #style_a a { color: ; } div .style_b a { color: ; } .style_b a { color: ; } div div a [ color: ; } div a { color: ; } a { color: ; } になりこれ以外のcolor指定は効かない(デフォルトリンク色になる)と思います

noname#66720
noname#66720
回答No.1

文字が黒くなる状態が再現できませんでした。 IEの場合href属性までつけないとリンクとして認識しないのでそのせいかもしれません。 一応他の参考ページを載せておきます。

参考URL:
http://hyper-text.org/archives/2006/11/important_css_specificity.shtml

関連するQ&A

  • IE7でスタイルシートの表示がうまくいかなくなった

    これまで使っていたスタイルシートがIE7ではIE6までの時のように表示されなくなりました。 IE7環境でもIE6環境と同じように表示させるには、スタイルシートをどのように直したらよいでしょう。 ■スタイルシートのソース <style type="text/css"> p {font-size=12pt;Letter-spacing:0.3pt;line-height:15pt;} a:link {color:blue;text-decoration:none;} a:active {color:blue;text-decoration:none;} a:visited {color:lightseagreen;text-decoration:none;} a:hover{text-decoration:none;background:brown;color:white} <!-- body{ scrollbar-shadow-color:blue; scrollbar-face-color:antiquewhite; scrollbar-Highlight-Color:cornflowerblue; scrollbar-arrow-color:dodgerblue; } --> div.blocka { float: left; width: 69%; } div.blockc { clear: both; } </style> ■想定している表示(IE6で実現できている表示) <div class="blocka"> 以下を左側に69%幅で表示 </div> <div class="blockb"> 以下を右側に表示 </div> <div class="blockc"> 以下をa|bの下に表示 </div>  a(69%)| b  -----------      c

    • ベストアンサー
    • CSS
  • スタイルシートについて

     スタイルシートでフォントサイズを指定する場合、 .style○○○ { size: 12px; }だと思うのですが、  次のリンクの3つをスタイルシートで上記のフォントサイズのようにあらわす場合どう表記すれば良いのでしょうか。 a:link { color: #0000cc; } a:visited { color: #000080; } a:active { color: #ff0000; }  一括でstyle○○になるのでしょうか。それとも3個しれぞれスタイルシートに登録するのでしょうか。  お願いします。

  • divでくくったけれど、反映が変になります。

    divで指定した2つのリンク要素なのですが、 mainのくくりの中の文字にleftsideの設定が反映されてしまいます。 でも、mainで指定した div#main a:hover { color: #6699FF ; text-decoration: underline; }だけはそのまま活きています。 どこが間違っているのでしょうか。 div#main a:link, a:visited { color: #3300FF ; text-decoration: underline; } div#main a:hover { color: #6699FF ; text-decoration: underline; } div#leftside a:link, a:visited { color: #000000 ; text-decoration: none; } div#leftside a:hover { color: #6699FF ; text-decoration: none; }

    • ベストアンサー
    • HTML
  • スタイルシートのリンク要素について

    スタイルシート。特定のIDセレクタにa要素を指定する方法を教えて下さい。 a:link{color:#FFFFFF} この場合はスタイルシートを適用すればページすべてに反映。 li a:link{color:#FFFFFF} これなら<li>にのみ適用ですよね? そこでたとえば #abcd というIDにのみa:linkを適用させる場合はどのようにしたらよいのでしょうか?

    • ベストアンサー
    • HTML
  • スタイルシートでのデザイン

    HTMLを組む際、今までレイアウトはtableタグで組んでいたのですが、CSSで組もうと思っています。 例えば、 <table align="center"> <tr> <td colspan="2" width="500" height="80">aaa</td> <td rowspan="2" width="300" height="200">bbb</td> </tr> <tr> <td colspan="2" width="500" height="20">ccc</td> </tr> <tr> <td width="200" height="100">ddd</td> <td width="300" height="100">eee</td> </tr> </table> をスタイルシートで配置しようと思い、 <div align="center" style="width:800px"> <div style="float:left;width:500px;height:80px;background-color:#ff9999">aaa</div> <div style="float:right;width:300px;height:200px;background-color:#9ff999">bbb</div> <div style="float:left;width:500px;height:20px;background-color:#9999ff">ccc</div> <div style="float:left;width:200px;height:100px;background-color:#99ffff">ddd</div> <div style="float:center;width:300px;height:100px;background-color:#ffff99">eee</div> </div> としたのですが、センタリングされないのと、eeeの箇所がdddの隣に来ないで次の行に移ります。 うまく出来ないので、どなたか教えて下さい。お願いします。

    • ベストアンサー
    • CSS
  • スタイルシートでサイト作り

    現在サイトをスタイルシートを使って作ってます。 まだまだ本&辞書片手に勉強中の初心者です。 幅450px高さ100%中央配置のテーブル内に ヘッダー部分に450px × 130pxの画像 その左下にメニューバー 右にコンテンツ を作りたいと思います。 メニューバーは 幅128px 高さ100%です。 本を見ながらアレンジして作りました。次の通りです。 /* === サイドバー部分のスタイル === */ .side {width:128px; vertical-align:top; padding:0px; background-color:#999999} .side div {font-size:12px; font-weight:bold; letter-spacing:3px; border-bottom:solid 1px white} .side a {color:#333333;  text-decoration:none; display:block; padding-top:5px; padding-bottom:5px; padding-left:13px} .side a:hover {color:ffffff; background-color:#666666} <!--=== サイドバー部分のソース ===--> <td class="side" rowspan="5" valign="top"> <div><a href="link.htm">about</a></div> <div><a href="link.htm">contents</a></div>   <div><a href="link.htm">blog</a></div>   <div><a href="link.htm">bbs</a></div>   <div><a href="link.htm">link</a></div> </td> リンクにふれると色が変わるのが気に入ってます。 この「link」の下にコメントとリンクを入れたいんですが 「拍手」ボタン <form>・・・</form> 「返事はこちら」  というコメント(「こちら」部分がリンク) をセルで囲って、画面下までのばしたいです。 いろいろ試したんですが、新しく作ったセルが横に並んだり <side>の a の影響を受けてしまったりして思ったように出来ません。 どうぞ御指南お願いします。

  • 「目次」と「サブ目次」のスタイルを分けたいのですが…

    「目次」と「サブ目次」のスタイルを分けたいのですが、次のようにクラスを作って、 <div id="mokuji"> <a href="page1.htm">目次</a> <a class="SUBMOKUJI" href="page2.htm">サブ目次</a> </div> 次のようにしても駄目です。 #mokuji a:link{ color:#000000; } #mokuji a.SUBMOKUJI:link{ color:#00ff00; } どうしたらよいのでしょうか?

    • ベストアンサー
    • HTML
  • wordpressでのスタイルシートの設定が反映しない

    wordpressでオリジナルテーマを作っています。MySQLデータベースはロリポップで設定しました。 phpテンプレートでのheadでの設定で、 <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" /> とcssを外部スタイルとして適用する設定をし、bodyのヘッダーで、 <div id="header"> <h1><a href="<?php bloginfo('url'); ?>"> <?php bloginfo('name'); ?></a></h1> <p><?php bloginfo('description'); ?></p> </div> と ブログタイトルをブロック要素のdivでまとめて、スタイルシートでは、 div#header {background-color: #a8d1ff} と設定したのですが、まったくプレビューしても反映されません。 初心者なので、これが説明不足かどうかわからないので、 とりあえずここでいったん区切ります。 教えてくれる方いらっしゃいましたら、補足説明もしますので、 ぜひお手数ですが宜しくお願い致します。

  • スタイルシートに関して

    最近、スタイルシートの勉強を始めました。 下記の様なCSS,HTMLを作成しブラウザーで表示するとIEは意図通りに IE以外(FireFox,Opera等)ではIEと違う(意図と異なる)表示になり 悩んでいます。 表示したい内容 黒いベース(300px,300px)の上に紫の四角(200px,200px)、さらにその上に緑の四角(100px,100px)を配置したい。 配置は、ブラウザーの左上隅より中心を上から150px,左から150pxとし3つ共に中心を合わせる。 IEでは、意図通りに表示 IE以外では、上にスペースが空き、各boxの表示位置が上にずれている CSS .box0 { width:300px; height:300px; background-color:#000000; } .box1 { margin-top:50px; margin-left:50px; width:200px; height:200px; background-color:#ff00ff; } .box2 { margin-top:50px; margin-left:50px; width:100px; height:100px; background-color:#00ff00; } HTML <BODY> <div class="box0"> <div class="box1"> <div class="box2"> </div> </div> </div> </body> *内容が悪いよとかCSSではできないよなどご意見・アドバイス頂ければ幸いです。

    • ベストアンサー
    • HTML
  • スタイルシートでレイアウトしたいのですが出来ません。

    <a href="○○.html" onmouseover="txt1.style.display='block'" onmouseout="txt1.style.display='none'"> ○○タイトル○○</div></a> <span id="txt1" style="display:none;position:absolute; border:3px solid #ff0000;color:#FF0099;background-color:#FFFFCC;"> ○○説明文○○</span> 上のような<txt>タグが全部で20個以上あるので (つまりtxt1~txt20まであります) CSSでレイアウトしたいのですがうまくいきません。 上のタグをCSSでどのように定義づけたら <div class>で作れるようになるか教えてください。

専門家に質問してみよう