• 締切済み

画像とその下にあるテキストの隙間を小さくする方法

ワードプレスで画像を挿入し、その画像の下にテキストを表示させたいと思っています。 管理画面にある「メディアを挿入」の画面で「キャプション」にテキストを記入しました。 これで画像の下にテキストが表示されましたが、画像とテキストの間に広い隙間が出来てしまっています。 この隙間をなくそうと、テキストの部分にクラスを設定し、そのクラスに対してCSSから「margin-top: 0px;」などと記述したのですが、変化がありませんでした。 また、imgタグの最後に「style="margin-bottom: 0px;"」を追加しても変化がありませんでした。 画像とその下にあるテキストの隙間を小さくするためにはどうすればよいのか教えて下さい。

  • arbert
  • お礼率98% (269/273)
  • CSS
  • 回答数3
  • ありがとう数9

みんなの回答

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.3

#2さん同様ですが、Chrome以外でも最近のブラウザなら F12キー の検証ツールで該当するコンテンツのレイアウトを見る事ができるので、原因がわかるでしょう。 まずは、画像とテキストがインライン内での改行なのか? ブロックで分かれているのか?判断する事。 例1: <p><img ~~><br>テキスト</p> 上記のようなインライン要素内なら、line-height:0; にする。 例2: <p><img ~~></p> <p>テキスト</p> ブロックならimg以外にもブロック要素のmarginやpaddingを0にする必要があります。 また、CSSには優先度があって、貴方の指定を最優先にしないと上書きされません・・・ そのサイトを直で検証しないと誰にもわかりません・・・ わからなければ、 #1さんのようにネガティブマージンで強引にマイナスする方法もありますねw

arbert
質問者

お礼

ご回答ありがとうございます。 FirefoxでもF12で検証できますね。 例1と例2の違いよくわかりました。 最初は例2にしていたので、上下に大きく空いていました。 それで、例1に変更しました。 floatを使って画像を右または左に寄せています(最初は右寄せにしていたのですが、テキストが左に寄るので左寄せのほうが見栄えがよいと思いました) <p><img ~~><br />テキスト</p> だと<br />が入っている分、上下に大きく空いてしまうんですよね。 なので、<br />は入れないようにしています。 また、<p>に「line-height:0;」を設定してもなぜか反映してくれません。 でも、今のままでもかなり狭くなっていますのでこれでよいと思っています。

  • nana_coco
  • ベストアンサー率66% (56/84)
回答No.2

こんにちは。 ブラウザのグーグルクローム「Google Chrome」はお使いでしょうか? CSSの場所や原因を突き止めるには、要素を検証が便利です。 試しにグーグルクロームでそのサイトを表示させ、 その画像あたりにカーソルを乗せて、右クリック「要素を検証」を選ぶと 画面下半分に、その画像のHTMLと右側に指定されたCSSが表示されます。 詳しくは「クローム 要素を検証」で検索して勉強してみてください。 人が構築したCSSをいじるには要素を検証が絶対といって言いほど必要です。 まずは画像を囲ってるDIVあたりにマージンが無いか。 キャプションにマージンが無いか。 その辺を要素を検証で探して見てはどうでしょうか。

arbert
質問者

お礼

ご回答ありがとうございます。 Google Chromeの「要素を検証」でいろいろ出てきましたので、 ちょっと複雑ですが確認してみたいと思います。

noname#217950
noname#217950
回答No.1

ワードプレスについてよく知りませんので的外れでしたらすみませんね。 ソースを見たわけではありませんので何が原因か確証はありませんが、marginを0にしても変化が出ないという事はmarginによる余白ではないのではないでしょうか?画像配置エリアとしてdivなどでimgが囲われていませんか?そこにpaddingがあるとか、あるいはエリアのwidthやheightが固定されていて画像の高さとの差が余白になっているとか?または、テキスト自体がtop : 500pxみたいに絶対配置されていたり…まあ、なにを言っても憶測ですが… いろんなCSSの指定が干渉してしまってなかなか思う様にいかないケースもあるかもしれません。最悪、テキストにmargin-top : -200pxなどと好きな値でネガティブマージンを指定すれば余白はなんとか埋まるのではないでしょうか? でも、ネガティブマージンはちょっとムリヤリ感がありますので、できればスマートにmarginが効かない理由がわかるといいですね。

arbert
質問者

お礼

ご回答ありがとうございます。 ワードプレスには元々いろんなスタイルが設定されていますので、それが影響しているのかもしれません。 今それを探しているのですが、該当する部分がなかなか見つからないため質問させていただきました。 もしかしたら同じような現象に遭遇して解決したことがある人がいないかなと思ったので・・・。

関連するQ&A

  • 下に隙間ができる

    Flashコンテンツの周りにボーダーラインを書きたいのですが、 下記のように記述すると、コンテンツの下に2pxくらいの隙間が できてしまいます。 この隙間はどうすれば消すことができるのでしょうか? ・HTML <div class="mainimage"> <embed src="test.swf" wmode="transparent" width="720" height="272"> </div> ・CSS div.mainimage { margin-top: 28px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; width: 720px; border: 1px solid #000000; }

    • ベストアンサー
    • Flash
  • 画像の下部にキャプションを入れる

    現在スマホサイトを作成しています。 そこに掲載する画像の下部にキャプションを入れたいと思っています。デザインでいうと下記サイトに掲載されているようなキャプションです。 http://subculsheets.blog.fc2.com/blog-entry-19.html 上記のサイトと違う点は画像の周りに5pxの白い枠を作成したこと、画像のキャプションには半透明の黒い画像を予め作成し背景として使用していることです。 スマホサイトの場合は、縦で見る時と横で見る時で横幅が変わります。 何となくはできたのですが、現在は縦画面で見た時にキャプションが2px程右にはみ出してしまっています。横画面で見るとちゃんと収まっています。 キャプションをつける画像のサイズは統一して380px×265pxの画像を使用しています。 下記が現在のコードです。 HTML----------------------------------------------------------- <div class="photo-center2"> <img src="../img/○○.jpg"> <div class="caption-txt2">キャプションテキスト</div> </div> --------------------------------------------------------------- CSS----------------------------------------------------------- .photo-center2 img{ width:100%; max-width:380px; } .photo-center2{ position: relative; border:1px solid rgb(204, 204, 204); padding: 5px; background-color:#ffffff; margin:0 auto; margin-bottom: 15px; width:90%; max-width:380px; } .caption-txt2{ position: absolute; color: #fff; padding: 5px; font-size: 12px; bottom: 9px; background-image: url("../images/caption.png"); text-align:center; width:95%; max-width:382px; } ------------------------------------------------------ どのように修正すれば縦画面で見た時もキャプションをはみ出さずに済むでしょうか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • Firefoxでの画像の縦の隙間をなくしたい

    現在Dreamweaver8でサイトを作成中の初心者です。 画像を縦に並べて表示したいのですが、<br>のタグを入れてないところはIE6,7だと隙間なく表示されるのですが、Firefoxだとどうも隙間が出来てしまいます。 ネットや本で自分なりに調べて試したつもりですが、どうにも解決できませんので、お手数ですがどなたかご協力頂けますようよろしくお願いいたします。 参考までにhtmlとcssです。 html部分 <div id="sidenavi"> <p><a href="jjj/index.html"><img src="image/xxx.jpg" width="245" height="79" border="0"></a></p> <p><a href="jjj/index.html"><img src="image/yyy.jpg" width="245" height="79" border="0"></a></p> <br> <p><img src="image/zzz.jpg" width="245" height="40"></p> <p><img src="image/aaa.jpg" width="245" height="80"></p><br> <p><img src="image/aaa.jpg" width="245" height="106"></p> </div> css部分 #contents #sidenavi { padding: 0px; height: 450px; width: 245px; float: right; margin-top: 0px; margin-right: 5px; margin-bottom: 0px; margin-left: 0px; } #sidenavi p { margin-top : 0; margin-bottom : 0; padding-top: 0px; }

    • ベストアンサー
    • CSS
  • FireFoxで見るとdiv間に隙間が・・・

    divを3つ使い、CSSで指定した背景画像によって一つのボックスを作っています。 IE6で見たときは異常ないのですが、FireFoxで見ると、 それぞれ隙間が開いてしまい、背景画像が途切れて見えます。 同じような使い方をしている箇所にすべて同じ事が起きています。 Firefoxではマージン0の状態でdivの間に隙間が出来てしまうのでしょうか? 直す方法があればご指導よろしくお願い致します>< <div id="medi-top"> </div> <div id="media"> <p>何行かにわたり、画像や文章が入力されています</p> </div> <div id="medi-bottom"></div> #medi-top { background-image: url(img/media_01.jpg); background-repeat: no-repeat; height: 50px; width: 680px; margin-top: auto; margin-right: auto; margin-bottom: 0px; margin-left: auto; line-height: 0; } #media { width: 600px; background-image: url(img/media_03.jpg); background-repeat: repeat-y; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-right: 40px; padding-left: 40px; } #medi-bottom { background-image: url(img/media_05.jpg); background-repeat: no-repeat; height: 35px; width: 680px; margin-top: 0px; margin-right: auto; margin-bottom: 50px; margin-left: auto; } 本や検索などで同じようなものを探して対処してみたのですが、 直らなかったため質問させていただきます。 よろしくお願い致します。

    • ベストアンサー
    • CSS
  • CSSで3分割した背景画像を配置したいけど隙間が出来てしまう?

    初めて質問させていただきます。 当方はCSS初心者です。 画像(グラデーションのある角丸四角枠)を3分割し、それを背景画像として配置したいのですが、WinIE6などで表示するとどうしても画像に隙間ができてしまうのです。 IE7、FireFoxでは無事に希望通りに表示されています。 【HTML】 <div id="wrapper"> <div class="top"></div> <div class="middle"></div> <div class="bottom"></div> </div> 【CSS】 #wrapper{ width:680px; height:auto; border:0 auto; padding:0; } .top{ width:650px; height:10px; background-image:url(img/01.gif); background-position:top center; background-repeat:no-repeat; margin:0 auto; padding:0; } .middle{ width:650px; background-image:url(img/02.gif); background-repeat:repeat-y; margin:0 auto; padding:0; } .bottom{ width:650px; height:13px; background-image:url(img/03.gif); background-repeat:no-repeat; background-position:bottom center; margin:0 auto; padding:0px; } といった感じで、ざくっとwrapperの中に背景画像をセンターで敷きたいのです。 .topと.middleの間には隙間は出来ないのですが、.middleと.bottomの間に数pxの隙間が出来てしまうのです。 制作環境はDreamweaver8、MAC/OSXですが、動作確認はWin/XPでも行っています。 何卒ご教示下さい。

  • IE6で画像の下に余白が入ってしまいます。

    CSSを使ってレイアウトをしているのですが、 <ul> <li>画像</li> <li>画像</li> <li>画像</li> </ul> でなぜか画像ごとに、下の部分に少しだけ余白ができてしまいます。 CSSでmarginやpaddingを0にしたり、 http://www.happy-crossing.com/tagmemo/log/eid11.html にあるようにvertical-align:bottomにしたり・・・ それでもなぜか下の余白が表示されています。 こちらの方は治ったみたいなのですが・・・ 他のブラウザはいろいろ見ましたが、余白などなく表示されていました。 Dreamweaver上でも少し余白が見えています・・・ お心当たりのある方がいらっしゃいましたら、どうかよろしくお願致します。 CSSは以下のように記述しています。 ul { float: left; margin: 0px; padding: 0px; list-style: none; margin-top: 45px; } li { width: 150px; background-repeat: no-repeat; padding-left: 13px; padding-bottom: 0px; height: 140px; float: left; vertical-align: bottom; margin-bottom: 0px; }

    • ベストアンサー
    • HTML
  • CSSでIE6だけ出る隙間をなくしたい

    お世話になります。 CSSとtableを組み合わせてレイアウトをしています。 WindowsのIE7やSafari、Netscapeでは正常に表示されるのですが、 IE6では<div>と<div>の間に1、2pxの白い隙間が出てしまいます。 htmlは下記にアップしています。 http://www.couleurcafe.jp/08/ ホーム、メニューといったメインメニューの行と、 赤地に白文字のヘッダーメニューの行の間に隙間が出てしまいます。 CSSは以下の通りです。 @charset "Shift_JIS"; body { margin: 0; padding: 0; background-image: url(img/bodybg.gif); } #wrapper { width: 780px; margin-right: auto; margin-left: auto; margin-top: 0px; margin-bottom: 0px; text-align: left; background-color: #FFFFFF; } #mainmenu { background-image: url(img/menubarbg.gif); background-repeat: repeat-x; width: 766px; height:29px; margin-left: 14px; margin-bottom:0px; padding-top:1px; } #menublock { background-image: url(img/menubg.gif); background-repeat: no-repeat; width: 88px; height:29px; font-size: 12px; color: #000000; text-align: center; height: 16px; padding-top: 12px; } #menublock_over { background-image: url(img/menubg_over.gif); background-repeat: no-repeat; width: 88px; height:29px; font-size: 12px; color: #FFFFFF; text-align: center; height: 20px; padding-top: 8px; } #headermenu { background-color: #E10C0A; width: 772px; height: 12px; font-size: 11px; color: #FFFFFF; text-align: right; padding: 4px; } この隙間をなくす方法はないでしょうか。 CSSのおかしいところがあればご指摘をお願いいたします。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ulでの段組の際の隙間

    お世話になります。 現在CSSで段組を行っているのですが、リスト(ul)で画像を縦に並べてメニューを作成しようと思っています。 liにはheightやmarginやpaddingなどをきちんと隙間なく並べるように書いて、imgにはvertical-align:bottom;を設定しています。 それでも、IE6.0で見たときどうしても1pxの隙間ができてしまうのです。 どうしてだろうと思い、画像の高さが25pxのものを作成し、liのheightに25pxを設定して(他は上記のCSSでいじらずに)表示すると、きちんと隙間ができずに表示されました。 隙間ができてしまうときのメニュー画像は高さ15pxのものを使用していて、liのheightを15pxと設定していました。 今までCSSで組んだときはきちんと隙間があくことなく表示できたのですが、今回だけどうしても隙間があいてしまいます。 メニューのリストで、使用する画像は小さいときは隙間があいてしまう、というようなバグがIEにあるのでしょうか。 もしそれがバグの場合は一言お教えいただけないでしょうか。 解決方法がなければしょうがないのでテーブルを使用しようと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • IE6で外部リンク画像の下に隙間

    IETesterの6で確認していたところ、 外部スタイルシートの画像の下に隙間(10px程)ができてしまいます。 Firefox、IE8、IE7ではこの現象は見られませんでした。 以下記述となります。 /* HTML */ <div id="bg_top01"></div> <div id="contents_box01">あああ</div> <div id="bg_btm01"></div> /* CSS */ #bg_top01 { background:url(../img/bg_top.gif) no-repeat; width:760px; height:6px; } #contents_box01 { background-color:#2F4473; width:716px; padding:0 22px; } #bg_btm01 { background:url(../img/bg_btm.gif) no-repeat; width:760px; height:6px; } 隙間ができるのはbg_top01の下だけです。 他のサイトで「vertical-align: bottom」を入れると直るあったので、入れてみたんですが変わりませんでした。 隙間をなくすのに他に方法がありますでしょうか? ご助言をお願いいたします。

    • ベストアンサー
    • HTML
  • ieでの微妙な隙間(CSS)

    以下のソースでhtmlを表示するとie6でpage_topとfooterの間に 3~5pxほどの隙間が開いてしまいます。 しかしfirefoxで表示すると隙間なく表示されます。 特にmarginなど指定していないので何が原因なのかが全くわかりません。 どのようにしたらie6でも隙間なく表示できるようになるでしょうか? 以下ソースの抜粋です。宜しくお願いします。 //CSS #page_top { clear: both; width: 900px; height: 24px; margin: 0 auto; padding: 0; background: #fff; text-align: right; } #footer { width: 900px; margin: 0 auto; padding: 10px 0 5px 0; background: #fff url(img/footer_bg.gif) repeat-x; text-align: center; } //html <div id="page_top"> <a href="#top"> <img src="img/btn.gif" alt="ボタン" width="114" height="24" /> </a> </div> <div id="footer"> あいうえおかきくけこさしすせそ・・・ </div>

専門家に質問してみよう