特定の見出しのみ前後の空白を消したい

このQ&Aのポイント
  • CSSを使用して特定の見出しの前後の空白を削除する方法について教えてください。
  • h2タグを使用して複数の見出しを作成しましたが、最初の1つの見出しの前後の改行を削除したいです。
  • HTML初心者ですが、上手くいかない理由がわかりません。どうすれば前後の空白を消すことができるでしょうか?
回答を見る
  • ベストアンサー

特定の見出しのみ前後の空白を消したい。

CSSに書き込んで、h1~6までそれぞれに設定を割り振れる事は分かったのですが、h2~6のどれかで囲った見出しが複数あり、その中の一つだけにclass、idを設定して装飾などの設定を変えることは可能ですか? h2タグを使って見出しをいくつか作成しました。 ですが最初の1つだけ前後の改行が邪魔で消したいです。 試しにHTMLを <span class="name"><h2>見出し</h2></span> CSSを .name { margin: 0px; } としたのですが、変わりません…。 HTML初心者なので、とんでもないレベルのミスをしてしまっているかもしれませんが、教えてくださると嬉しいです。

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

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

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

●間違いについて <span class="name"><h2>見出し</h2></span> これ間違いです。spanの中にはh2は入れられません。入れられたとしても、spanの指定がh2に反映されることなく、h2への指定はそのまま残るのでなんら変わらないと思います。 【勉強すべき事】 内包できる要素は、要素により決まっています。親になる要素も決まっています。 文書宣言によるのですが、html4までなら、「インライン要素に、ブロックレベル要素は入れられません」と単純なルールですが、html5はそうも言いきれません。がしかし、spanの中にはh2はhtml5でも入れられません。 このあたりのことは、きちっと入門書を前から順番に習得する場合には最初のうちにでてくるのですが、つまみ食い的な学習方法だと知らないままの方が躓く所です。 h2にはspanは入れられます。がしかし、h2の中にspanを入れた所で、結果は新しいspanのmarginが0になるだけなので、なんら、変わらないでしょう。 ●提案 では、どうするかというと、特定の見出しのみ<h2 class="name">とされてはいかがでしょうか? classを付ける為だけにspanやidを入れるのは、つまみ食い的に学習をするかたによく見られる間違いです。 【勉強すべき事】 spanやdivにだけidやclassが付けられると思っている方がおられますが、全てのタグに付けられます。 ●エスパー提案 さらに、最初の1つだけとのことですので、なにの最初かわからないのですが、 <h1>見出し</h1> <h2>今回の見出し</h2> h1とすぐ後に続くh2への指定は、 h1+h2{margin-top:0;} で、対応可能です。この場合、ことさらに、class="name"を入れる必要はありません。 【勉強すべき事】 セレクタの文法 前述ののセレクタは「隣接兄弟セレクタ」と呼ばれる物です。 また、最初の子要素を示す、「first-child疑似クラス」というセレクタを利用しても、class="name"を付ける必要はありません。

その他の回答 (1)

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

・class名はデザインのためじゃない!!   あくまで、その文書を構成している要素をタグを使ってマークアップする。   その中で複数の【文書の構造上】複数で構成されるグループはclassで、   唯一のものは、idで分類する。    <h2 class="plant Name" id="Camellia_japonica">椿</h2>    <p><span class="plant Name">椿</span>はツバキ科の・・・</p>    <h2 class="animal Name" id="Nyctereutes_procyonoides">タヌキ</h2>    <p><span class="animal Name">タヌキ</span>はイヌ科タヌキ属の・・・</p> ・スタイルシートで、HTML文書中のある要素にスタイルを指定するときには、その文書構造を元に指定していきます。  段落(p要素)は、マージンを消して一文字インデントさせるなら   p{margin:0;text-indent:1em;}  見出し(h2)で植物名が書かれているものは赤字にしたいのでしたら、   h2.plant{color:red;}  植物・動物の名前は太字でしたら   *.Name{font-weight:bold;}  段落中の名前はアンダーライン引きたければ   p span.Name{text-decoration:underline;}  最初の段落だけ先頭の文字を  CSS(カスケーディングスタイルシート)のカスケードの仕組みを理解していないと、複雑怪奇でメンテナンスができなくなるHTML、CSSを書くことになります。  そのため、CSSの命といえるカスケード 5 セレクタ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/selector.html ) 6 プロパティ値とカスケーディング、継承の割り当て( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/cascade.html )  をまず身につけましょう。仕様書でもプロパティより前に説明がある。

関連するQ&A

  • cssで見出しの両側に文字を表示したい

    css+htmlでWebページを作成しています。 その中で見出し(H3タグ)の両側に、右寄せ左寄せで文字を表示したいのです。 (完成イメージは画像参照)。 ソース全文載せましたが、見出しの下に右寄せと左寄せの文字が、表示されてしまいます。 見出しの両側に表示させるにはどうしたらよいですか? よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <title></title> <STYLE TYPE="TEXT/CSS"> <!-- div.heading { width: 450px; background-color: #e0e0e0; border: #e0e0c0 solid; border-width: 1px 1px 2px; margin-left: auto; margin-right: auto; } /* --- 見出し --- */ div.heading h3 { margin: 0; padding: 7px 7px 4px; border-bottom: 4px #9825e1 solid; font-size: 100%; line-height: 100%; text-align: center; } span { float: left; width: 100px; text-align: center; } span.back { float: left; } span.next { float: right; } }--> </STYLE> </head> <body> <!--全体(wrapper) Start--> <div class="all-wrapper"> <div class="main-wrapper"> <div class="heading"> <h3>見出し</h3> <span class="back"><a href="#">BACK</a></span><span class="next"><a href="#">NEXT<aa></span> </div> </div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • marginを指定した見出し要素の後に段落要素をつけるとmarginが変なことになります。

    CSSとHTMLでホームページを作っています。 ですがなぜかIEの表示のみ、妙な表示になります。 <h3>などの見出しタグで見出しを作り、そのあとに段落でいろいろ指定していると、なぜか見出しのマージンが後の段落に影響します(IEのみ)。 この対策法を教えていただけないでしょうか? ソース(一部を抜粋、少し書き換え)は HTMLは4.01 Traditional(DTDあり)で、 <h3 class="st">ABOUT</h3> <p> ここは×××の管理する、・・・・サイトです。<br> ●●はメインからどうぞ。 </p> <h3 class="st">Update Log</h3> <p> 2009/03/24 ああああああああ<br> 2009/03/23 あああああああああ<br> ああ<br> </p> CSSは h3.st{color:#727171;background-color:#ffffff;font-size:95%;text-align:center;margin:0px 25px;padding:3px 0px;border-bottom:#87ccd4 1px dotted} p{text-align:left;margin:0px;padding:3px 32px;line-height:200%;font-size:90%;} です。 CSS内で、CLASS要素を指定した他のpタグにfloatを指定しましたが、それが影響しているかと思って消してみても変わりません。 どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • 見出しの装飾についての質問です。

    WPで見出しの装飾をしたいのですが、うまくいきません 手順としては (1)子テーマに、CSSを追加(クラス) (2)本文をテキストモードで編集 詳細 (1) 外観⇒テーマの辺州 Simplicity2 child: スタイルシート (style.css) を表示 @charset "UTF-8"; /*! Theme Name: Simplicity2 child Template: simplicity2 Version: 20161002 */ /* Simplicity子テーマ用のスタイルを書く */ とあるので、最後の /* Simplicity子テーマ用のスタイルを書く */ の下に、見出し装飾タグの headline { background: #dfefff; box-shadow: 0px 0px 0px 5px #dfefff; border: dashed 1px #96c2fe; padding: 0.2em 0.5em; color: #454545; } を追加し、更新 (2) 本文の見出し(h2)を修正 <h2>見出し</h2> を <h2 class="headline">見出しタイトル</h2> に変更 更新 どこがいけないのでしょうか・・・

    • 締切済み
    • CSS
  • 見出し<h3>にリンクを追加すると背景画像が表示されない

    h3の見出しに<a>を追加するとh3に設定していた見出し画像がIEで表示されなくなってしまいました。 FireFoxではきちんと表示されているので IEのバグかと思っているのですが、 もし解決方法がありましたら、アドバイスいただければ幸いです。 [HTML] <div class="contents"> <h3><a>見出し</a></h3> </div> [CSS] .contents h3 { background: url(../images/marker_blue_square.jpg) no-repeat 0 0.1em; padding:0 0 0 25px; margin-left:2.2em; margin-top:1em; font-size:medium;} 色々と試してみたんですが、 たとえば、以下のように見出しの文章の一部にリンクを張ると 見出しの背景画像がきちんと表示されました。 [HTML] <div class="contents"> <h3>見<a>出し</a></h3> </div> また、CSSに以下を追加してみたんですが 背景画像が二重になって表示されてしまいました。 [CSS] .contents h3 a { background: url(../images/marker_blue_square.jpg) no-repeat 0 0.1em; padding:0 0 0 25px; margin-left:2.2em; margin-top:1em; font-size:medium;} よろしくお願いします。

  • これってスパムですか?

    CSS+HTMLでテーブルを使用しないサイト制作をしていますが、<h1>タグに関してはCSSで背景画像を設定して、下記のようなソースにしているのですが、これってGoogleなどでスパム行為としてペナルティーなど受ける可能性があるのでしょうか? ●CSS-------------- h1 { font-size: 14px; color: #FFFFFF; background-image: url(img/title.gif); background-repeat: no-repeat; margin: 0px; } .hidden { display: none; } ●HTML------------ <h1><span class="hidden">プロフィール</span></h1> よろしくお願い申し上げます。

    • ベストアンサー
    • HTML
  • 見出しの複数行の対応について

    見出しが複数行になった場合の対処法(自動で)をおしえてください  | | AAAAAAAAAAAAAAAAAAAAAA |__________________________ 上記のようなL字?の見出しがあります。(本来は実線) これが複数行になると 下線の下に2行目が来てしまいます。 これを | | AAAAAAAAAAAAAAAAAAAAAA | AAAAAAAAAAAAAAAAAAAAAA |__________________________ とするにはどうすれば良いのでしょうか。 ここのコードは HTML <h3 id="item-2" class="ct_sltext">AAAAAAAAAAAAAAAAAAAA‥‥</h3> CSS .content h2, .content h3 { clear:both; font-weight:normal; margin:0; padding:0; } .content h3 { background:transparent url(../images/midasi_bar.gif) no-repeat scroll left 4px; height:40px; margin-bottom:10px; padding:10px 0 5px; } .content h3.ct_sltext { color: #カラー; font-size:17pt; font-style:italic; padding:0 0 5px 40px; } こんな感じになってます。

    • ベストアンサー
    • HTML
  • 見出し(hr)の表示方法について

    <h1>を使用して見出しを表示のさせ方で質問があります。 現在 html <h1 align="center" >見出し</h1> CSS h1{ margin:0; align:center width 100%; font-style:normal; font-size:22px; background: #777788; color:#eeeeff; line-height:1em; padding: 7px 7px 5px; text-align:center; } を使用して見出し表示させた場合 画面幅全体に指定した背景色で見出しが表示されます。 それを 画面の中心部分に指定した幅、背景色、見出しを表示させたいのですが どうすればいいのですか? 文章だけでわかりにくいかもしれませんが 回答お願いします。

    • ベストアンサー
    • HTML
  • CSSで見出し(タイトル)行の右端に日付を表示させる正しい方法は?

    みなさま初めまして。OKWebコミュニティに初めて登録したMxanaduと申します。 CSSを用いて、見出し(タイトル)行の右端に日付を表示させようと思い、以下のような設定をしています。 [スタイルシートの定義] <STYLE TYPE="TEXT/CSS"> <!-- H4 { PADDING: 5PX; WIDTH: 99%; COLOR: #FFFFFF; BACKGROUND-COLOR: #008080 } SPAN.DATE { FLOAT: RIGHT } --> </STYLE> [HTMLドキュメントへの適用例] <H4>タイトル<SPAN CLASS=DATE>&nbsp;&nbsp;&nbsp;Mon, Aug 8, 2005</SPAN></H4> この方法で、Safari 1.3 (v312)(Mac OS X(10.3.9)付属)とiCab 3.0 Beta 337では意図した通り表示できます。 しかし、IE 5.2.3 (5815.1)(Mac OS X版)では見出しタイトルと日付の行がつぶれてしまいます。(<SPAN></SPAN>を外すとつぶれなくなりますが、日付を右端に表示できません) また、Mozilla系のNetscape 7.1、Mozilla 1.7.11、FireFox 1.0.6J、Camino 0.7JおよびCamino 0.8.4(全てMac OS X版)では見出しタイトル行で日付が改行され、paddingの中に埋もれてしまいます。 Windowsのブラウザでどうなるかは、Windowsマシンを持っていないので分かりません。 意図した表示ができるブラウザが限られてしまうのは、私のCSSの使い方に間違いがあるのでしょうか? それとも、意図した表示ができないブラウザのCSS実装に問題があるのでしょうか? 私のCSSの使い方に間違いがある場合は、正しい方法を教えて戴ければと思います。 以上よろしくお願い致します。<(_ _)>

    • ベストアンサー
    • CSS
  • CSSで設定した見出しが反映されない

    Wordpressを使用しています。 CSSでクラス設定した見出しが、記事に反映されません。 この1時間かけて10個以上のサイトを見て回り、何度も何度も試しましたが、どうしても予め用意されているツールバーから選ぶ「見出し2」になってしまいます。 どのサイトも書いている事は同じですし間違えていないと思うのですが…。 ・CSSに下記タグを書いて保存 .midasi01{ background:#fff8dc; border-top:1px dotted #ccc; border-right:1px dotted #ccc; border-left:7px solid #ff7f50; border-bottom:1px dotted #ccc; padding:.8em .9em } ・wordpressで記事作成 「ビジュアル」ではなく「テキスト」を選び、下記タグを挿入。 <h2 class="midasi01">あいうえお</h2> 以上、宜しくお願い致します。

    • 締切済み
    • CSS
  • Cssで

    次のようなHTMLとCssを作成し、見出しを表示しようとしています。 1つ目の見出しと2つ目の見出しは全く違うものにしたいので、2つ目の見出しにはh2にクラス名を指定しています。 しかし2つ目の見出しは1つ目の見出しの属性を引き継いでいるようで、 border-left: 5px solid #0086b9;などは有効になり2つ目の見出しでも左側に線が表示されてしまいます。 1つ目のcssの情報を完全に消した後、2つ目の見出しを表示する方法をご教授下さい。 ▼HTML <h2>見出し2</h2> <h2 class="sample1">見出し2</h2> ■Css h2 { font-size: 145%; margin-top: 10px; margin-bottom: 10px; padding-left: 10px; border-left: 5px solid #0086b9; border-right: 1px solid #0086b9; border-top: 1px solid #0086b9; border-bottom: 1px solid #0086b9; line-height: 1.4; background-color:#F7F7EF; } h2.sample1{ border-right:solid 2px #808080; border-bottom:solid 2px #808080; background-color:#c0c0c0; padding-top:3px;padding-left:3px; width:300px; }

専門家に質問してみよう