スタイルシートのセレクターについて

このQ&Aのポイント
  • スタイルシートのセレクターについて理解したいです。
  • 「.navigator a」セレクターの意味を教えてください。
  • W3SchoolのCSSレファレンスにも詳細は載っていません。
回答を見る
  • ベストアンサー

スタイルシートのセレクターについて

御世話になります。 ネットからダウンロードした、オブジェクト指向PHPの教本の中に、下に挙げるスタイルの記述があります。これはGoogleなどで検索した時に使われているようなページナビゲイターを作ろうとしている部分でのスタイルの記述すが、最初の " .navigator a " というセレクターの意味がわかりません。 .navigator a, span.inactive{ margin-left:0px; border-top:1px solid #999999; border-left:1px solid #999999; border-right:1px solid #000000; border-bottom:1px solid #000000; padding: 0px 5px 2px 5px; } コンマの後の "span.inactive" は inactive というクラス名を持った<span> エレメントだとわかりますが、" .navigator a "は navigator というクラス名を持った<a> エレメントではないですよね?  W3School の CSS レファランスなども調べましたが, クラス名の後にスペースがあって、その後に<a> エレメントがあるような組み合わせはみつけられませんでした。 このセレクターの意味を教えていただきたく、よろしくお願いいたします。

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

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

  • ベストアンサー
回答No.2

>そうですか、"tag-name.class-name" という書式は知っていましたが、".class-name tag-name" というを初めて知りました。 一種のワイルドカードだと思えばいいです。 ".class-name"だと、どのタグにも使用できる "div.class-name"だと、DIVタグでだけ使用できる "div"だと、DIVタグ全部に適応 >これは "a.navigator" というのとは意味が異なるのですよね。 この書き方だと、aタグ内のclass=navigatorに対応ですね。 あと、その件を検証するHTMLを表示しておきました。 ただし、質問者さんが思った通りの結果なので、 特に説明は不要でしょうけど。

papashiroSooke
質問者

お礼

とても分かりやすい説明を頂き、有難うございます。 CSSについてはほんの基本的な部分を勉強しただけで、PHPのコーディングに力を入れていましたが、これからはもっとCSSをしっかりやっていこうと思いました。

その他の回答 (1)

回答No.1

あってますよ。 .navigator a, span.inactive { なので、class=navigator内のaタグで会ってます。 それと、spanタグ内のclass=inactiveの2つを宣言してます。 書いてるが、「使ってないだけ」ってこともあるので、 心配なら、、、 div.abc span { color:red; } <div class=abc> <span>aaaa</span> </div> などを試してみてもいいかもです。 ただ、アンカータグ"a"は少し特殊なので、 普通のタグと使えるCSSが違うときはありますがね。

papashiroSooke
質問者

お礼

毎度、早々とご回答を頂き、有難うございます。 そうですか、"tag-name.class-name" という書式は知っていましたが、".class-name tag-name" というを初めて知りました。 これは "a.navigator" というのとは意味が異なるのですよね。この navigator というクラス名は、<a> タグの親である<div> に付けられたクラス名なので、 ".navigator a" は「naviggator というクラス名を持つ要素の中にある<a>エレメント」と考えて良いのですね。 ご確認いただけると有難いです。

関連するQ&A

  • スタイルシートの適応のやり方

    現在ドリームウェーバーでHPを作っていますが CSSを使いメニューボタンをへこむボタンにしたいのですが うまく反映されません。 ソフトが最近から使い始めたのでうまく理解できていないところです。 a.sample{ text-decoration:none; } a:hover.sample{ color:#CC0000; border-width:0px 1px 1px 0px; border-style:solid; border-color:#990000; position:relative; top:-2px; left:-2px; } a:active.sample {/*クリック中の色*/ color:#CC0000; border-width:1px 0px 0px 1px; border-style:solid; border-color:#990000; position:relative; top:2px; left:2px; padding-left:3px; } こちらです。 手順を教えて頂けないでしょうか?

    • ベストアンサー
    • HTML
  • スタイルシートでのメニュー作成で

    今回初めてテーブルを使わずスタイルシートでナビゲーションを作成しているのですが 下記の方法ではメニュー内のテキストが左に寄ってしまいます。 出来ればすっかり左寄せではなく、左に10px程空間を入れたいのですがどのようにすれば良いでしょうか。 CSS内の#menuに「margin-left:10px」としても反映されません。 ■■ CSS ■■ #menu {margin: 12px; padding: 0px; width: 180px; border-top: 1px solid #080240; border-right: 1px solid #080240; border-left: 1px solid #080240; font-size: 100%; } #menu ul {margin: 0px; padding: 0px; list-style: none; } #menu li {margin: 0px; padding: 0px; } ■■ HTML ■■ <ul> <li><a href="#">メニュー1</a></li> <li><a href="#">メニュー2</a></li> </ul> アドバイスいただけると助かります。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • HTML
  • スタイルシートを使い<h1>で指定するには?

    スタイルシートを活用して <p style="border-style: solid; border-color: green; border-width: 1px 4px; padding: 3px;"> ぼけぼけ </p> という枠を<h1>ぼけぼけ</h1>と指定しただけで表示させるにはどのようにスタイルシートを記述すればいいのでしょうか?

    • ベストアンサー
    • HTML
  • ホームページビルダーでスタイルシートを使ったのですが?

    今、ホームページビルダーで簡単な2カラム(右メニュー)のテンプレートを作っています。 質問ですが、メニューバー(サイドバー)に色を付けたくて、画像を使う事にしました。 <div class="main">に画像(background.gif)を入れ属性で繰り返す(垂直方向)にチェックをいれたのですが、IEやfirefoxでプレビューでは反映されていないです。 色々いじってみたのですがどうしても解りません。どこが間違っているのか教えていただけないでしょうか? よろしくお願いします。 HTML <body> <div class="box"> <div class="header"> <span class="site_name">ここにサイト名を入れる</span> <h1>ここにh1</h1> <div class="description_1">ここに簡単な説明文</div> </div> <div class="main"> <div class="contents">コンテンツ部分<br /> </div> <div class="menu"> メニュー部分 </div> </div> <div class="footer"> フッター部分 </div> </div> </body> スタイルシート * { margin:0; padding:0; } .box{ width : 750px; margin: 0 auto; border-left-width : 1px; border-left-style : solid; border-left-color : black; border-right-width : 1px; border-right-style : solid; border-right-color : black; border-bottom-width : 1px; border-bottom-style : solid; border-bottom-color : black; } .header { width : 726px; height : 96px; background-color : #b9b9ff; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; border-bottom-width : 2px; border-bottom-style : solid; border-bottom-color : black; } .main { width : 750px; background-image : url(file:///C:/Documents and Settings/※※※/img/background.gif); background-repeat : repeat-y; background-position : 0px 0px; margin-top : 0px; margin-bottom : 0px; margin-left : auto; margin-right : auto; background-color : #ffffff; } .menu { float: left; width : 180px; padding-top : 10px; padding-left : 10px; padding-right : 10px; padding-bottom : 10px; margin-left : auto; margin-right : auto; } .contents { float: left; width : 526px; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; } .footer { clear: both; width : 726px; height : 26px; background-color : #b9b9ff; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; text-align : center; } .menu ul { list-style: none; } .site_name{ font-size : 21px; font-weight : bold; margin-left : 12px; } h1{ font-size : 15px; margin-top : 12px; margin-left : 24px; } .description_1{ font-size : 12px; font-weight : normal; margin-left : 24px; }

  • スタイルシートについて

    スタイルシートについて質問です。 下記をTableの基本スタイルにしています。 特定のTableのみ、borderカラーを#666666にしたい場合 上記基本スタイルを生かしたままで簡潔なスタイルの設定方法はないでしょうか。 table, td, th {border: 1px solid; border-collapse: collapse} .w550     {border-color: #8AC5D4; width:550px} .w550 td    {border-color: #8AC5D4; text-align: center} .w550 th    {border-color: #8AC5D4; padding: 5px; padding-left: 10px; color:#2A6D90} いつもスタイルシートの設定が大量になってしまう為、今回はどうにか簡潔で綺麗にしたいので アドバイスいただけると大変助かります。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • HTML
  • スタイルシートでツールチップ

    初心者です。 http://ameblo.jp/linking/entry-10083271034.htmlから拝借して、ツールチップが出るような指定をしたいと思うのですが、できたらaタグを使わずにやりたいのですが、どうしたらよいでしょうか。 よろしくお願いいたします。 <html> <head> </head> <style> a:hover {background:#ffffff; text-decoration:none;} /*BG color is a must for IE6*/ a.tooltip span {display:none; padding:2px 3px; margin-left:8px; width:130px;} a.tooltip:hover span{display:inline; position:absolute; background:#ffffff; border:1px solid #cccccc; color:#6c6c6c;} </style> <body> Easy <a href="#" class="tooltip">Tooltip<span>This is the crazy little Easy Tooltip Text.</span></a>. </body> </html>

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

    お詳しい方どうか教えてください。 スタイルシートを使用してある文字列を、罫線で囲みたいと思っております。 以下のタグを作成したのですが、height=280が効いていないようなのです。 使用ブラウザは古いのですがNN4.51です。"height"はNN4.51では対応されていないのでしょうか? 作成タグは以下です。 <SPAN STYLE="width: 650px; height: 280px; border: solid 1px black; background: white; color: white;">・・・・<SPAN> どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • スタイルシートテーブルの罫線を細くしたい

    例えば以下のようにHTMLを書いた場合、 tableとtdのスタイルシート指定により、 外枠と内枠で罫線がかさなり、 若干太くなってしまいます。 細くしたいのですが、どうすれば出来るのでしょうか? <table style="{border:1px solid #000000;border-spacing:0px}"> <tr> <td style="{border:1px solid #000000;padding:0px}">あああ </td> <td style="{border:1px solid #000000;padding:0px}">いいい </td> </tr> </table>

  • Opera(10.10)でのスタイルシートの表示について

    Opera(10.10)でのスタイルシートの表示について  Operaでのスタイルシートの「border」の表示について質問させて下さい。 これは例ですが、HTMLとCSSを以下のとおりに設定しているとしますね。 ------------------------------------------------------------------ <body>  <div id="layout">   <div id="box1">    <p>ボーダーのテスト</p>   </div>  </div> </body> ------------------------------------------------------------------ *{   margin : 0px;   padding : 0px; } #layout{   width : 800px;   height : 600px;   padding : 10px;   margin-left : auto;   margin-right : auto;   background-color : #FFF; } #box1{   width : 780px;   height : 580px;   padding : 10px;   border-top : solid 1px #D1D1D1;   border-left : solid 1px #D1D1D1;   border-right : dashed 1px #D1D1D1;   border-bottom : dashed 1px #D1D1D1;   background-color : #FFF; } ------------------------------------------------------------------  このように設定した場合、「id="box3"」のボーダーは上と左が直線、 右と下が点線と表示されるのが正しい表示だと思います。 しかし、Operaで閲覧した場合なぜか「border-left」のみ表示されません。 「border-left」を「solid」から「dashed」に変更すると表示されます。 borderに合わせてwidthもちゃんと横に伸びているので、 CSSが適用されていないわけではないと思います。  また、「border-left」を「dashed」から「solid」に変更した場合には、 「border-top」と「border-right」の両方が見えなくなってしまいます。  どちらの問題も、IE6やFirefox(3.5.7)では指定通り正しく表示されました。 Operaでも同様に正しく表示させるにはどうすればよいのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • スタイルシートの横並びリスト中央配置について

    #Area_Navi { margin: 0; padding: 0; } #Area_Navi ul { margin-left: auto; margin-right: auto; text-align: center; list-style-type: none; list-style-position:inside; } #Area_Navi li { text-align: center; display: inline; padding: 0; margin-left: auto; margin-right: auto; float: left; width: 200px; } #Area_Navi a { display: block; border-left: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; background-color: #FFFFFF; font-size: 20pt; padding: 3px; text-decoration: none; color: #000000; margin: 1px 0px; text-align: center; } スタイルシートは上記なのですが、うまく中央配置されず 半端に左寄せになっています。 windows7 firefox を使用しています。 調べて position:relative; と記載しても上手く中央寄せになりませんでした。 どなたか、教えて頂けませんか。 宜しくお願い致します。

    • ベストアンサー
    • CSS