• ベストアンサー

pタグによる段落間のアキ調整について

こんにちは。 HTMLのpタグでくくった段落が連続すると、 多くのブラウザでは段落間に1行程度のアキが生じると思います。 このアキをCSSによってなくしたいのですが どう指定すればいいのでしょうか? たとえば段落の「margin-bottom」に0ではなく マイナス値を入れればなくせるようですが、 「pによる1行アキ」というのがすべてのブラウザでの 共通仕様なのか分からず、マイナス値使用に怖さを覚えます。 どういうやり方がすべてのブラウザに通用する 正しいやり方なのでしょうか?

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

  • ベストアンサー
noname#14464
noname#14464
回答No.4

> > まあ、0などにすれば空きは見えなくはなりますが… > え? できますか?  できますよ。 ただ、pが上部にマージンをもうけるか下部にマージンをもうけるかは分からないので、 下部マージンは元々0だった(空白に見えていたのは上部マージンだった)と言う可能性があると思いますよ。 margin:0;などとして上下左右をいっぺんに指定すれば、ブラウザのデフォルトスタイルの介入がなくなるので、良いのではないかと思います。 このようにして略記した場合は、四辺を一度に指定することが出来、 しらべてみたところ、Operaでは margin:0; ← 上下左右0に指定 margin:0 1px; ← 上下0, 左右1pxに指定 margin:0 1px 2px; ← 上0, 左右1px, 下2pxに指定 margin:0 1px 2px 3px;上右下左という順番で、0, 1, 2, 3pxに指定  という風になっているようです。 まあ、使いうるのは全方向指定と上下左右指定ぐらいなものかもしれませんが(^_^;

noname#12055
質問者

お礼

なるほど。 「margin-bottom: 0px」のほかに 「margin-top: 0px」も指定したら完全に詰まりました。 「margin: 0px」で全解除してbottomだけ追加指定してもよさそうですね。 まだ、ここらへんの仕組みが完全には理解できていなかったようです。 もう一度じっくり資料を読み返してみたいと思います。 とても助かりました。解決しました。 *「すぐに締め切るな」といった意見をよく目にしますので  半日ぐらいは開けておきます。ご容赦ください。

noname#12055
質問者

補足

補足欄にてごめんなさい。締め切らせていただきます。 おふたかたともどうもありがとうございました。 特にTakamiChieさんは何度もご回答いただいたこと、 いろいろと検証までしてくださったこと、 そのご親切に感謝申し上げます。 また機会がありましたら、どうぞよろしくお願いいたします。 ありがとうございました。

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

その他の回答 (3)

noname#14464
noname#14464
回答No.3

 ちなみに、下記ページでは、上下のマージンを1exに指定しています(margin: 1ex 0; 書き忘れていましたが、0だけは、何も指定しないと言うことなので、単位を省略できます)。  なお負の値ですが、先に紹介したリファレンスによると、一応不正なものではないとのことです。ただし、ブラウザによって実装が異なります。

参考URL:
http://d.hatena.ne.jp/TakamiChie/
noname#12055
質問者

お礼

たびたびありがとうございます。 ああ、ご紹介いただいたページの段落間のアキでも十分なんです。 ただ、私は「行」間を少し空ける指定もしているものですから それに引きずられてか、段落間もけっこう空いてしまうんです。 あ"、行間指定との組み合わせで何とかなったり…。 ちょっと試行錯誤はしてみます。

全文を見る
すると、全ての回答が全文表示されます。
noname#14464
noname#14464
回答No.2

 すべてのブラウザによって微妙に違うのは仕様です。ある程度はあきらめましょう。  …と言っても、ある程度の調整は出来ます。 marginプロパティに指定する数値には、px, ex, emなど、様々な単位があるので、それを活用しましょう。それで不自然のない区切りが出来ると思います。  まあ、0などにすれば空きは見えなくはなりますが…、わたしの感覚では少々不自然に感じました(段落が適切に区切られている場合ならなおのこと)。適切な単位で適切な量の空間を空けるようにした方がよいでしょう。  なお、margin:1; などとやって1pxと解釈されるというのはIEのみの仕様です。単位は省略してはいけません。  なお、これからは私見ですが、わたしは段落マージンにはpxを使わず、exなどの単位を使うようにしてます。これらは小数点指定が出来るし、ブラウザを使う側の都合によって適切な量の幅がとられるからです。

参考URL:
http://hp.vector.co.jp/authors/VA022006/css/
noname#12055
質問者

お礼

ご回答ありがとうございました。 > まあ、0などにすれば空きは見えなくはなりますが… え? できますか? 以下のような指定をしたのですが、 例えばIE6.0では完全に1行あきます。 詰めるにはマイナス値が必要のようですが 指定が間違っていますでしょうか? ---------------------------------------------- ●HTML ---------------------------------------------- <p>段落段落段落段落段落段落</p> <p>段落段落段落段落段落段落</p> ---------------------------------------------- ●CSS ---------------------------------------------- p { margin-bottom: 0px;} ---------------------------------------------- なお、ご紹介のページは知りませんでした。 読ませていただきます。ありがとう。

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

ブラウザによって<p>の挙動は違うような気がします。(未確認) <br>を使いましょう。

noname#12055
質問者

お礼

ご回答ありがとうございました。 やっぱり挙動が違うと考えるべきですよね。 困ったなぁ。 > <br>を使いましょう。 ごめんなさい。あくまで段落の連続であり 意味的に改行じゃないんです。 それに段落間を0.5行にしたいところも ありまして…。 できないって考えるべきなのでしょうか?

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

関連するQ&A

  • 段落タグ<p>について教えてください。

    昔、どこかのサイトで<p>タグは必要不可欠のものだ、との記述を見たことがあります。例えば <h1>タイトル</h1> <h2>サブタイトル</h2> <p>説明文</p> のように。必ず<p>タグで文章をくくらなければいけない、 というのが、『本来』の規則なのでしょうか。(←質問1) もしそうだとして、テーブルやリストなども<p>でくくるのですか? (↑質問2) また、<div>を使い1つの段落をブロックとしてまとめる(?)ときも<p>を使うのでしょうか、それは<div>の外側と内側、どちらに書くべきですか?(←質問3) 上記の質問はインライン要素、ブロック要素というようなものと関係があるのですか?(←質問4) 最後に、複数の改行を行うとき、<br>の連続は禁止されていますが、スペースだけの段落で改行を演じるのはどうなのでしょうか。(質問5) 長くなりましたが、簡単にでいいのでよろしくお願いします。

  • Pタグを使っても一行あきません。

    html5doctorを使っているのですが、 Pタグを使っても一行あきません。 下記のmargin:0;でリセットされるのでしょうか? Pタグの一行は、marginなのでしょうか?

    • ベストアンサー
    • HTML
  • WinXPとWin7のPタグの見え方について

    例えば、以下のようなHTMLソースがあります。 【html】 <p>あいうえお</p> <p> </p> <p>かきくけこ</p> <p> </p> <p>さしすせそ</p> <p> </p> <p>たちつてと</p> WinXPのブラウザ IE6~9 Mozilla Firefox Google Chromeでは あいうえお かきくけこ さしすせそ たちつてと と行間が空くのですが、 Win7のIE7-9では 行間が詰まって あいうえお かきくけこ さしすせそ たちつてと と表示されてしまいます。 WinXPとWin7で見え方が違うのは、pタグに何の文字を入れていない(空タグ)だからでしょうか? WinXPとWin7で見え方を同じにするには、やはり、pタグの空タグ部分をすべて削除して、 CSSでpタグにマージンを入れてあげればよいのでしょうか。 アホな質問でもうしわけないですが、 見え方が違うのに悩んでまして、どなた様かお分かりでしたら、 お教え下さい。よろしくお願いします。  

  • 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
  • <br>に代わる方法はありますか?

    例えば 「あああああ  あああああ」 上記のようにブラウザで表示したい時に、HTMLを 「<p>あああああ</p> <BR> <BR> <BR>  <p>あああああ</p>」 このような感じで書いていたのですが <br>を連続で書くことは、あまり好ましくないと知りました。 <br>を連続で書く以外に、複数行分の空白スペースを作る方法を考えて (上の例の場合で) 1.cssを使って、<p>のpaddingのtopかbottomに余白を作る。 2.cssを使って、<p>のheightを大きめに指定して余白を作る。 3.cssを使って、marginで位置を調整する。 4.<br>にしていた箇所を<p></p>に変える。 この4ツを思いついたのですが、 この4ツの中なら、どれが好ましいのでしょうか。 またこの4ツ以外で、推奨方法があれば教えて下さい。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • <P>タグと<div>タグについて

    <P>タグと<div>タグには“前後に空行が入るかどうか”という違いがあるそうですが、下記のようなデータを作り、自分のホームページに記入したところ、前後に全く空行が入りませんでした。 しかし、自分のホームページ以外で、このデータを試してみたところ、<p>タグにはきちんと空行が入るようです。 記入する場所によって、空行が入ったり入らなかったりするのは、なぜなのでしょうか? ※ブラウザはIE8を使用しています。 <P align="right" style="width:740px;margin:auto;">●●●</p> <P align="right" style="width:740px;margin:auto;">●●●</p> <P align="right" style="width:740px;margin:auto;">●●●</p> <div align="right" style="width:740px;margin:auto;">▲▲▲</div> <div align="right" style="width:740px;margin:auto;">▲▲▲</div> <div align="right" style="width:740px;margin:auto;">▲▲▲</div>

  • <BR>タグは、あまり使わないほうが良いのでしょ

    <BR>タグは、あまり使わないほうが良いのでしょうか? cssを使って margin-top:100px; margin-bottom:20px; 等で調整したほうが良いのですか? もしそうなら、理由を教えてください。

    • ベストアンサー
    • HTML
  • アメブロでpタグのmarginが広がらない

    アメブロでpタグのmarginを広げたいです。 初歩的な質問で申し訳ないのですが、何故か解決できません。 Wordpressの記事をアメブロに移植するため、pタグが入っています。 cssに下記を追加してみましたが、何故か変化がありません。 p { margin: 50px 0px 50px 0px; } でダメで、 .skinArticleBody p { margin: 50px 0px 50px 0px; } もダメです。 .skinArticleBody2が何者なのか、いまいちよくわかりません。 新エディタを使っています。 お手数かと思いますが、どうぞよろしくお願いします。

    • ベストアンサー
    • CSS
  • divとpの使いわけ

    サイトを作っているとdivとpで迷います。 「自由だしどちらでもいんじゃない?」と言う声も聞こえてきそうに 思うのですがこういう方向で使い分けている等という区分ってありますか? 私の場合 <div class="title">タイトルです</div> <p>コメントです1</p> <p>コメントです2</p> <p>コメントです3</p> のような感じでcssで p {margin-bottom: 1em;} と設定しております。 コメントに改行がなく1行2行で済む場合は <div>コメントです</div> で問題ないのですができるだけ適した改行(段落)も入れたくpでテキストは 囲むようにしております。 気になったもので質問させて頂きました。有利な点や不利な点など どんなコメントでも構いませんのでご意見をお待ちしております。

    • ベストアンサー
    • HTML
  • <p>タグ内の行揃えについて

    <p>タグで段落を作り、その中を右側に行揃えしたいのですができません。 テキストは下のようにしたのですが…。どうしたらできるか教えてください。 <p style="text-aligan:right">~</p style="text-aligan:right">

    • ベストアンサー
    • HTML