画像が混入した文章でline-heightを有効にするには?
宜しくお願いします。あるテーブルにline-heightを設定しても、変化が見られずに原因を調べていました。
画像が混入していると、line-heightが有効にならないことがわかりました。
下記サンプルの上段は、150%の改行幅になりますが、下段の場合にはなりません。
下段の場合に、改行幅を設定するにはどういう方法がありますでしょうか?
<!--contents-->
<TABLE STYLE="line-height: 150%;">
<TR>
<TD>
<A HREF="01.html">国語</A><BR>
<A HREF="02.html">数学</A><BR>
<A HREF="03.html">理科</A><BR>
<A HREF="04.html">社会</A><BR>
<A HREF="05.html">体育</A><BR>
<BR>
</TD>
</TR>
</TABLE>
<!--contents-->
<!--contents-->
<TABLE STYLE="line-height: 150%;">
<TR>
<TD>
<A HREF="01.html"><IMG SRC="../image/0123.gif" WIDTH="10" HEIGHT="10">国語</A><BR>
<A HREF="02.html"><IMG SRC="../image/0123.gif" WIDTH="10" HEIGHT="10">数学</A><BR>
<A HREF="03.html"><IMG SRC="../image/0123.gif" WIDTH="10" HEIGHT="10">理科</A><BR>
<A HREF="04.html"><IMG SRC="../image/0123.gif" WIDTH="10" HEIGHT="10">社会</A><BR>
<A HREF="05.html"><IMG SRC="../image/0123.gif" WIDTH="10" HEIGHT="10">体育</A><BR>
<BR>
</TD>
</TR>
</TABLE>
<!--contents-->
回答(1)
1.

どうしても、、、という場合は、divで囲って、line-heightとlayout-grid-lineを同時に指定すると、いいかもしれません。(layout-grid-*はIEしか効かないです。)
しかしながら、もし、ご質問の件のように科目などを並べるというケースだと、ベストな解決法は、tableを使わずに、ul(順序なしリスト)を使うことです。0123.gifは予め10x10に大きさを調整しておいて、
<ul style="list-style-image:url(../image/0123.gif);line-height:150%;"> <li/><A HREF="01.html">国語</A> <li/><A HREF="02.html">数学</A> <li/><A HREF="03.html">理科</A> <li/><A HREF="04.html">社会</A> <li/><A HREF="05.html">体育</A> </ul>とtableの代わりに書くと、幸せになれる気がします。
liのbackgroundは、かさに凄い裏技です。ズレも調整でき、ばっちりです。
コメント(15)
試しに
<TABLE STYLE="line-height: 150%;"> <TR> <TD>これを
<TABLE> <TR> <TD STYLE="line-height: 300%;">に変更してみてください(“300%”のほうが、とりあえずわかりやすいから)。
>>#1
私、またとんちんかんなコメントをしてしまったようですねorz
指定する場所(<TABLE><TD>)の問題ではなかったようです。
私がやってみた限りでは
画像混じりの場合は、テキストのみの時より
%の数字を大きしたら反映されました。
<TABLE STYLE="line-height:200%;">
<TR>
<TD>
<A HREF="01.html">国語</A><BR>
<A HREF="02.html">数学</A><BR>
<A HREF="03.html">理科</A><BR>
<A HREF="04.html">社会</A><BR>
<A HREF="05.html">体育</A><BR>
<BR>
</TD>
</TR>
</TABLE>
<TABLE STYLE="line-height: 500%;">
<TR>
<TD>
<A HREF="01.html"><IMG SRC="http://www.google.co.jp/logos/Logo_40wht.gif" border="1">国語</A><BR>
<A HREF="02.html"><IMG SRC="http://www.google.co.jp/logos/Logo_40wht.gif" border="1">数学</A><BR>
<A HREF="03.html"><IMG SRC="http://www.google.co.jp/logos/Logo_40wht.gif" border="1">理科</A><BR>
<A HREF="04.html"><IMG SRC="http://www.google.co.jp/logos/Logo_40wht.gif" border="1">社会</A><BR>
<A HREF="05.html"><IMG SRC="http://www.google.co.jp/logos/Logo_40wht.gif" border="1">体育</A><BR>
<BR>
最後の
</TD>
</TR>
</TABLE>
は、文字数の都合によりカットしました。
>>#3 は、私がやってみた内容をそのままコピペしました。
http://www.google.co.jp/logos/Logo_40wht.gif
GoogleのロゴのURLを間違ってしまったようです。失礼しました。
こうなるともうほとんど「コメント荒らし」ですネ^^;
またオニキスさんに助けを求めようかな・・・。
>>1
位置の微調整ですが、これは結構面倒です。上下左右どちらの問題も、厳密に制御するには、ブラウザごとにCSSを切り分けるのがよいのですが、そこまでやるのも面倒だと思いますので、オススメの妥協点を書かせて頂きます。
まず左右ですが、以下のようにpaddingも設定して下さい。
margin-left:10px; padding-left:10px;marginだけだと、Firefox等で右に少し寄るので、paddingを調整します。
次にタテですが、もし画像の下の方にブランクがあって、それをカットして調整できるなら、できるだけそれをまず実行します。フォントの高さと画像の高さが揃っていれば、これで済むと思います。そうでない場合は、
vertical-align:middle;を指定します。IEはこれでいい感じになると思いますが、Firefoxは不満が残ります。
>>#8
続き:
この辺が妥協点かとも思いますが、画像をulのlist-styleに設定するのではなく、liのbackgroundに設定するという手もあります。
ul{
list-style-type:none;
/*list-style-image:url(star.gif);*/
line-height:150%;
vertical-align:middle;
margin-left:10px;
padding-left:10px;
text-indent:20px;
}
li{
background:url(../image/0123.gif) no-repeat left center;
}
これでほぼ満足がいく結果になるかと思います。>>#9
横レスすみません。
LIに背景画像指定って言うのは良いですね。
本来の使い方とは異なりますが、これならブラウザ間の表示の差に頭を悩ませなくて良いかもしれない、と思いました。
PやDIVタグでは似たようなことをしていたのに、LIで使うという頭がありませんでした。
これイイです。
今度何かの機会があったら採用したいと思いました。
オニキスさん
liのbackgroundに設定でばっちりうまく行きました。
margin-left:10px;
padding-left:10px;
text-indent:20px;
この3つの数値を調整することで、ぴったりにできますね。
text-indentは、使ったことはなかったのですが、こういう時に効果がでるのですね。
大変、勉強になりました。CSSは奥が深いですね。
また、宜しくお願いします。
万年床生活者(謹慎中)さんも、いろいろとありがとうございました。
ベストありがとうございました^^
ところで、line-heightは結構ハマることがあるので、それを知っている人は、この質問に回答するのを躊躇したと思います。私も少し様子を見て回答する人がいなければ・・・と思っていたのですが、切り込み隊長の突撃っぷりをたまたま発見してしまって、回答させて頂きました。
>万年床生活者(謹慎中)さん
ブログ関連の質問は見ないことが多いので、見逃していそうなときは、私のブログにコメントして頂ければ見に行きます。AQさんとかのブログに書く方が早いというウワサもありますがw
<!--回答ついてないときは、気にせず突撃して下さい!-->




