• 締切済み

HTMLの文章中の画像のベースラインに下線を引くには

XHTML1.0 で下記のような文に対し, <a>~</a> のベースラインに下線を引きたいです。つまり img タグで表示する画像に下線を引きたいということです。 *************HTML*********************** これはテスト<a href="test"><img src="image.gif" width="20" height="33" class="middle" alt="1" /></a> です。 *************CSS************************ img.middle { vertical-align: middle; } **************************************** テキストだと下線が引かれますが、画像だと引かれないようです。 なお、下線は画像の下のふちではなく、テキストのベースラインに引きたいです。 CSS でどのような指定をしたら下線が引かれますか?

  • HTML
  • 回答数4
  • ありがとう数3

みんなの回答

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

遅くなりました。 納期が決まっている仕事があって、ここしばらくは・・ 良い方法はないようですね。すくなくともウェブ標準に合わせては無理です。  で、ちょっと無理やりっぽい方法ですが、 <p>  <a href="test"><img src="imageO.gif" width="20" height="16" class="over" alt="1" /></a><img src="imageO.gif" width="20" height="17" class="under" alt="2" /> </p> と二つに分けて、 img.under{  position:relative;  left: -20px;  top:15px; } とか・・・くらいですかね。

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

このままのソースでは無理です。 ・underlineはテキストがまったくないと引かれない。  後ろか前に、スペースを置くだけでテキストのベースラインに線が入ります。なお、&#x200b;(Zero-wide-space)でも線が入るのはFirefoxだけです。 ・<a>アンカー</a>にボーダーを引くために、<a>アンカー</a>にclass属性で指定すれば可能 <a href="[URL]" style="border-bottom: 1px solid red"><img ****></a>

yocean1201
質問者

お礼

お返事ありがとうございます! 1つ目の方法では、下線ははいらないようです。 全角の空白か, 空白以外の半角文字を入れると下線が入りますが, これは避けたいです。 2つ目の方法では、FireFox ではバッチリなのですが、IEではベースラインではなく、画像の下部に線が引かれます。 ここまでできると、あとちょっとという感じですが、なんとかなるのでしょうか??

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

CSSです。 /* リンク内の画像の枠をデフォルトではなし */ a img{  border: none; } /* リンク */ a:link img.middle{  border-bottom: solid 2px rgb(0,0,255); } / *訪問済み */ a:visited img.middle{  border-bottom: solid 2px rgb(0,0,136); } /* マウスオーバー時 */ a:hover img.middle{  border-bottom: solid 2px rgb( 0,136,255); } /* アクティブなリンク */ a:active img.middle{  border-bottom: solid 2px rgb( 155,0,255); } インデントのため、タブを全角スペースに置き換えてます。

yocean1201
質問者

お礼

ご提示いただいた方法だと、下線は画像の下のふちに沿って引かれてしまいます。 下線は画像の下のふちではなく、テキストのベースラインに引きたいのですが、 どのように実現可能でしょうか

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

ラインの上に画像をおけば隠れてしまいますよ。 img.middle { vertical-align: middle; } を消すとどうなりますか?

yocean1201
質問者

お礼

加工した文字を画像として保存し、ライン上に表示しています。 文字以外の部分は透過なので、下線が引かれれば見えるはずです。 img.middle { vertical-align: middle; } を消しても下線は表示されませんでした。 なお、画像の位置がずれてしまうので、 img.middle { vertical-align: middle; } は残すことが必須になります。 よろしくお願いいたします。

関連するQ&A

  • 文章を、画像の縦方向の位置の中心に置きたい

    CSSを使ってwebページのレイアウトをしています。 画像の高さの真ん中あたりに、文章を配置したいのですが、方法を教えてください。 「vertical-align:middle;」で指定してみたら1行の文ではうまく行ったのですが、複数行になるとうまくいきません。 どうすれば、複数行の文章で上手く指定できるでしょうか。 [ソース] <style> .test{ width:530px; height:263px; background-color:#ffcccc; font-size:10pt; } img{ vertical-align:middle; } </style> <div class="test"> <p> テキスト<br> テキスト<br> テキスト<strong>テキスト</strong>テキスト<br> <img src="画像のURL"width="250" height="259" alt="画像の名前"> </p> </div>

    • ベストアンサー
    • CSS
  • 画像と背景色の幅が合わない

    画像サイズも設定しているのですが、なぜか画像の下にスペースが空きます。 vertical-alignを入れてみたのですが、解決しません。 問題なのは、 ・画像と画像の間にスペースが空く ・画像と画像のスペースの下に、下線が表示される(画像をよく見ていただければ分かると思います。) ・画像の下に空白ができる <HTML> <div class="gazou" align="center"> <nobr> <a href="アドレス"><img src="gazou1.jpg" width=190 height=50></a> <a href="アドレス"><img src="gazou2.jpg" width=190 height=50></a> 以下、同様に続く・・・ </nobr></div> <CSS> div.gazou { clear: both; background-color: #0099ff; vertical-align: text-bottom; } ※画像は改行なしで横並べ。 画像のサイズは正しく指定してあります。

    • ベストアンサー
    • CSS
  • 画像をボックスの中心に位置付けたい…

    ネットで調べていくつかのパターンを試してみましたが、 vertical-align:middle;が全然かかりません。。。 同じボックスをいくつも作ってその中に様々なサイズの画像を配置したいのです。 .bb_box{ width:210px; height:90px; display:table-cell; text-align:center; vertical-align:middle; layout-grid-line:90px; } .b_img{ vertical-align:middle; } <div class="bb_box"><img src="○○○" alt="○○" width="91" height="33" border="0" class="b_img" /></div> 間違い箇所がたくさんあるかと思いますがご教示ください。よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • CSS セルごとリンクにする際、リンク文字を上下中央寄せにしたい

    セルごとリンクにしたくて、以下の記述をしました。 【CSS】 ------------------------------------------------------------------ a.widelink{ vertical-align:middle; display:block; // display:inline-block; width: 100%; height:100%; // line-height:100%; color: #000000; text-decoration:none } a.widelink:hover{ vertical-align: middle; color: #000000; background-color: #9999FF; text-decoration:none } td.bgchng{ align: center; vertical-align: middle; color: #000000; margin: 0px; padding: 0px; } td.bgchng:hover{ vertical-align: middle; color: #000000; background-color: #9999FF; margin: 0px; padding: 0px; } ------------------------------------------------------------------ 【HTML】 ------------------------------------------------------------------ <TABLE border="1" bordercolor="#6666CC" cellspacing="0"> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test01.html" CLASS="widelink"> テスト<BR>(その1) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その1)の説明文<BR> &nbsp;二行目 </TD> </TR> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test02.html" CLASS="widelink"> テスト(その2) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その2)の説明文<BR> &nbsp;二行目<BR> &nbsp;三行目 </TD> </TR> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test03.html" CLASS="widelink"> テスト(その3) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その3)の説明文<BR> &nbsp;二行目 </TD> </TR> </TABLE> ------------------------------------------------------------------ この記述だとリンク文字がセルのTOPに来てしまい、中央寄せになりません。 思いつく限りの場所にvertical-alignやvalignを仕込んでみましたがダメでした。 line-heightであわせる方法もやってみましたが、<BR>を含むリンク文字の表示が二行揃ってくれず、ダメでした。 セル自体をリンクにして、さらにリンク文字を上下中央寄せにしたいのですが、やり方をご存知の方、教えてください。

  • CSSで画像を中央に持っていく方法。

    簡単な問題です。 画像を liの枠内の上下左右中央に配置するには、どうすればいいでしょうか? 画像のサイズがまちまちなので、 paddingなどで数値を指定するのは、NGです。 vertical-align:middleはだめでした。 text-align:centerで左右の中央に持って行く所まで、できました。 HTML ==================== <ul class="book_slide"> <li><img src="image/bookmihon.jpg" width="51" height="75" alt="*" /></li> <li><img src="image/bookmihon.jpg" width="51" height="75" alt="*" /></li> </ul> ====================== css ======================= ul.book_slide li{ float:left; height:114px; width:80px; border:1px solid #000; text-align:center; } =======================

    • ベストアンサー
    • CSS
  • 【HTML】画像と画像の間に「_」が入ってしまう

    画像のように勝手に画像と画像の間「_(アンダーライン)」が入ってしまいます。どのようにすればこのアンダーラインを消せますか? ■HTML■ <div id="imglink"> <a href="hogehoge1"> <img src="hogehoge1" width="88" height="31" alt="okwave"> </a> <a href="hogehoge2"> <img src="hogehoge2" width="88" height="31" alt="okwave"> </a> <a href="hogehoge3"> <img src="hogehoge4" width="88" height="31" alt="okwave"> </a> </div>

    • ベストアンサー
    • HTML
  • 画像横のテキストをセンターに配置したい

    HTML5, CSS3をベースに、添付画像(2)のような状態で作成したいなと思っております。 <ul> <li><a href="#"><img src="XXX.gif" alt="#" width="60" height="60">○○○○○</a></li> <li><a href="#"><img src="XXX.gif" alt="#" width="60" height="60">○○○○○○○○○○</a></li> <li><a href="#"><img src="XXX.gif" alt="#" width="60" height="60">○○○○○</a></li> </ul> HTMLはこんな感じでシンプルに。 特に何もしなければ、 (1)のように画像のベースラインとテキストのベースラインが同じ位置に配置されます。 テキストが2行になると画像の下にずれ込みます。 しかし(2)のようにテキストをセンターに配置したいなと。 テキストは多くても2行でとどめるつもりなので、 1行でも2行でもセンターになるようにしたい。 ではと思ってまず思い浮かんだのが画像を「float: left」すること。 でもそうするとテキストがベースラインから回避できますが、 センターにはいかず、画像のトップと同じ位置に配置されます。 テキストが1行なら、反強制でPタグでくくって 「margin: top」で調整することもできるかと思いましたが、 2行分は設定したいのです。 ちなみに画像のサイズは指定しておりますが、 li自体には横幅の設定はしていますが高さ設定はしていません。 実質画像の高さが高さになることになります。 簡単にできることかと思っていたのですが、思いのほか苦戦しております。 ご存知の方いらっしゃいましたら、ご教授いただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • ★CSS★親ボックスの中で子ボックスを真ん中に。

    CSSの質問です。 .imgs imgが真ん中に表示されません。 どうしてでしょうか・・・? .imgs { height: 160px; width: 160px; position:relative; } .imgs img { position:absolute; vertical-align:middle; } よろしくお願いします。

    • ベストアンサー
    • CSS
  • ドロップダウンメニューの方法を教えてください

    ■ドロップダウンメニューでサブメニューが横並びで出るようにしたいと思っています。 HTMLは下記のように記述しています。どのようにJavascriptを記述すると良いのか教えてください。よろしくお願いします。 【html】 <div id="menuber"> <a href="#"><IMG src="test/m1.gif" width="101" height="20" border="0" align="left"></a> <div class="hiddenmenus"> <span id="sub"> <a href="#"><IMG src="test/sub1.gif" width="101" height="20" border="0" align="left"></a> <a href="#"><IMG src="test/sub2.gif" width="101" height="20" border="0" align="left"></a> <a href="#"><IMG src="test/sub3.gif" width="101" height="20" border="0" align="left"></a> <a href="#"><IMG src="test/sub4.gif" width="101" height="20" border="0" align="left"></a> </span> </div> </div> 【CSS】 .hiddenmenus {position:absolute; top: 20px; left: 0px;} #sub1 { visibility: hidden; }

  • CSSで、画像を左寄せにして全体を中央にする方法

    画像5点を左寄せで配置しています。 添付画像のようにブラウザの幅によって段数を変更できるようにしていますが、 どうしても、画像部分がセンタリングされません。 他のサイト等を丸2日かけて調べましたが、どうもうまい事できません。 どなたかご教授くださいませ。 よろしくお願いいたします。 以下、現状のHTMLとCSSです。 ■HTML <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial=1, maximum-scale=1"> <link rel="stylesheet" type="text/css" href="css/style2.css" media="all"> <title>タイトル</title> </head> <body> <header> <p>ヘッダー</p> </header> <div id="contents"> <a href="http://○○○○○○○/001.html"><img src="images/001s.jpg" > <a href="http://○○○○○○○/002.html"><img src="images/002s.jpg" > <a href="http://○○○○○○○/003.html"><img src="images/003s.jpg" > <a href="http://○○○○○○○/004.html"><img src="images/n004s.jpg" > <a href="http://○○○○○○○/005.html"><img src="images/005s.jpg" > </div> <footer> <p>フッター</p> </footer> </body> </html> ■CSS @charset "UTF-8"; *{ margin: 0;padding: 0} a { text-decoration : none} ul, ol { list-style : none} img { vertical-align : top} html { font-family : verdana, sans-serif; font-size : 120%; line-height : 150%; margin : 0; width : 100%; text-align:center; } body { width:100%; text-align:center; } header { width:100%; margin-bottom: 0px; color: #fff; font-size: 20px; height:30px; background : url(../images/back.jpg) } #contents { width:100%; padding : 30px 0 10px; text-align:left; } #contents img { margin-bottom : 24px; } footer { color: #fff; width:100%; font-size: 10px; height:30px; background : url(../images/back.jpg) }

    • 締切済み
    • CSS

専門家に質問してみよう