• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SSIに関するご質問)

CSSでh1タグの上にできる隙間をなくす方法

このQ&Aのポイント
  • 質問者はSSI(Server Side Includes)を使ってHTMLファイルを読み込んでいるが、挿入されたファイルの最初の行の上に10pxほどの隙間ができてしまう問題が発生している。質問者はこの隙間をなくすためにCSSの記述方法を知りたいとしている。
  • 質問者が挿入されたファイルの最初の行の上に隙間ができてしまう問題を解決するために試した方法として、h1タグをspanに変更したところ隙間がなくなり表示されたと述べている。しかし、h1タグのままでも隙間をなくすためのCSSの記述方法が知りたいとしている。
  • 質問者はh1タグの上にできる隙間をなくすためのCSSの記述方法を知りたいとしている。

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

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

HTMLとCSSについて基本は理解しておきましょう。でないと、単純なところで先に進めなくなります。  SSI経由だろうが無関係にHTMLは <h1>私のホームページ</h1> <p> <a href="a.html">HOME</a> <a href="b.html">紹介</a> <a href="c.html">日記</a> <a href="d.html">LINK</a> </p> <H2>日記</H2>   <P>     私の日記です。お暇な方はどうぞ。   </P> となるはずですね。(余分な文字が入っていない限り) これを <span>私のホームページ</span> <p> <a href="a.html">HOME</a> <a href="b.html">紹介</a> <a href="c.html">日記</a> <a href="d.html">LINK</a> </p> <H2>日記</H2>   <P>     私の日記です。お暇な方はどうぞ。   </P> とすると、「ページ上部に隙間ができない」と言うことですが、HTMLを見る限り逆にはなっても、そうはならないことが理解できると思います。  HTMLの要素には、ブロック要素とインライン要素( ブロックレベル要素と行内要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.3 ) )があることはご存知でしょうが、<h1>や<p>はブロック要素で<span>はインライン要素です。  スタイルを一切記述せずにHTMLをブラウザの持つデフォルトのスタイルシートでご覧ください。多くのブラウザは下記のようなスタイルを持っていることが多いです。 ★HTML 4.0におけるスタイルシートの例 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/sample.html )  そのうえで、スタイルシートでプレゼンテーションを変更していきます。 ※このとき、 * { margin: 0; padding: 0; } のような指定はすべきではありません。*は全称セレクタで詳細度こそ0ですが、ブラウザの持つすべての要素のmarginとpaddingをリセットしてしまいます。そのため、pやh1~h6、blockquoteや各リストやリスト項目のそれらも改めて設定しなければならなくなり、スタイルシートが煩雑になります。必要なものだけ指定しましょう。  h1に対して、詳細度0,0,0,1で、再びmarginやpaddingを指定していますから、この*を使っての指定は意味ないはずですし・・  示されたHTMLやCSSを見る限り、あなたがいわれる現象にはならないはずです。どこかでより高い優先順位か詳細度でマージンを指定しているとしか考えられません。 ★CSSは{カスケーディングスタイルシート}の略です。カスケーディング機能がこのスタイルシートの【命】です。セレクタ・出所・最優先宣言・出現順番・継承・詳細度などを含む大変重要な仕組みです。marginとかfont-familyなどのプロパティより先に身につけるべき、極めて重要な仕組みです。  5.セレクタ ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/selector.html )  6.値の割り当て、カスケード処理、継承 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html )    なお、firefoxのアドオンにfireBug( https://addons.mozilla.jp/firefox/details/1843 )という解析ツールがあります。それをつかうと、どの要素にマージンがあるかたちどころにわかるでしょう。他の開発者向けツール ( https://addons.mozilla.jp/firefox/extensions/developer_tools/ )と共に使われると良いでしょう。

noname#157053
質問者

お礼

多くの情報、また適切なご指摘ありがとうございます。 今一度、確認し直したいと思います。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

SSIでもCGIでも、サーバーサイドで処理するものは、直接作ったHTMLとなんら違いはありません。 <!--#include virtual="/ssi/test.html" -->  だったら、ここに直接 <h1>私のホームページ</h1> <p> <a href="a.html">HOME</a> <a href="b.html">紹介</a> <a href="c.html">日記</a> <a href="d.html">LINK</a> </p>  と書くのと同じです(ブラウザにとっては)。 SSIとかは関係なしに、できあがったHTML+CSSが期待通りになっていないだけだと思われます。 各種チェッカーや開発ツールを使って確認しましょう。

関連するQ&A