• ベストアンサー

IEと他ブラウザでの行間について

CSSにてレイアウトを行っていますが、IEで表示したとき行間が詰まってしまいます。 全体的に狭くなってしまうのはもちろんなのですが、 たとえば文章と文章の間を<br><br>で一行開けた場合も、Firefoxなどでは -------------- 一行目 二行目 -------------- となってくれるのですが、IEだと -------------- 一行目 二行目 -------------- につまってしまいます。 作成環境はMacOSX、DreamweaverCS3 確認はmacでFirefox3、Safari3、Opera9.5、Netscape7.1です winでIE6、Firefox3です。 ブラウザ間の表示誤差をできるだけ少なくするにはどのような指定方法がよいのでしょうか? CSSのフォント関係の指定の部分のみ抜粋します。 html {font-family:'Verdana', sans-serif; color:#444444; font-size:66%; line-height:2.0; letter-spacing :0.2em; } これは小さなことなのですが、他にもIEでの表示でつまづくことが多いので困っています。

  • HTML
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • abril
  • ベストアンサー率69% (388/560)
回答No.2

IEのバグの1つですね。IE(6/7共に確認済)でletter-spacingプロパティを適用した要素内で、brを2回以上連続してマークアップした場合、brが「1つおきにしか認識されない」現象が起こる様です。つまり: ----------------------------------------------------------- 【letter-spacingが初期値(0)】 ----------------------------------------------------------- <コーディング> 一行目(br2回連続)<br><br> 二行目(br1回)<br> 三行目(br3回連続)<br><br><br> 四行目 ----------------------------------------------------------- <表示結果> 一行目(br2回連続)…一行空き 二行目(br1回) 三行目(br3回連続)…二行空き 四行目 ----------------------------------------------------------- 【letter-spacingが初期値(0)以外】 ----------------------------------------------------------- <コーディング> 一行目(br2回連続)<br><br> 二行目(br1回)<br> 三行目(br3回連続)<br><br><br> 四行目 ----------------------------------------------------------- <表示結果> 一行目(br2回連続)…行空きはなし 二行目(br1回) 三行目(br3回連続)…一行空き 四行目 ----------------------------------------------------------- という事になります。回避するには、letter-spacingを初期値(0)にするしかありません。 ただし、そうすると本来のletter-spacingの用途、文字間隔を空けたいというスタイルが使えなくなってしまって困りますよね。根本的な解決策は、ANo.1の方が仰っている様に、「単に行間を空ける(要素と要素の間に空白を作る)用途でbrの連続を使うのをやめる」事です。brはあくまで、インライン内容(テキストやイメージ)を強制的に改行する(例えば、一つの「段落」内でどうしても改行させたい箇所があった場合など)為に使うものであり、「一段落の区切り」がついた様に見せる為のものではありません。その為には、ちゃんとp要素が用意されているのですから、内容毎に適切にp要素でマークアップしてそれぞれのpに対してclassセレクタなどでマージンの値を調整し1行空きなどの視覚的効果を与えるべきです。 ※環境(ブラウザなど)によってはいくらbrを連続しても一つのbrとして解釈・処理してしまう場合もありますから。 > ブラウザ間の表示誤差をできるだけ少なくするにはどのような指定方法がよいのでしょうか? 先述した通り、まずはHTML側のマークアップを文書内容に応じて適切なものにし、その上でCSSでスタイルを与える。勿論、IEは特にCSSの仕様に準拠してくれない解釈の多いブラウザですが、これらの基本作業がちゃんとできてから、その上でIE用の対処を追加すれば済む事です。

Elisha
質問者

お礼

詳しい解説ありがとうございます!基礎的なところから至らず非常に恐縮です。とても勉強になりました。少しずつ学んでいこうと思います。

その他の回答 (1)

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

letter-spacing :0.2em;と<br><br>の連続のせいじゃないかな? ただ、基本的に<br><br>と連続させるのは、NG。 <p>あああああ<br><br>いいいいい</p> 上記では、無く下記に。 <p>あああああ</p><p>いいいいい</p>

Elisha
質問者

お礼

ありがとうございます!<br>を重ねるのはよくないのですね。基本的なところから至らず非常に恐縮です。とても勉強になりました。

関連するQ&A

  • 文字をセル下部にぴったりくっつけたい

    お世話になります。 テーブル(の<td></td>)内に入れた文字を、セルの下部ボーダーにぴったりくっつけるように配置したいと思っているのですが、IE6でうまく文字の表示ができません。 その文字には font.●● {font-size:35px; font-weight:bolder; font-family:Verdana; color:#332600; letter-spacing:-2px; } とCSS指定し、またテーブルタグの方には <table cellspacing="0" cellpadding="0"> と <td valign="bottom"> を指定しています。 これで、Firefoxだときちんと表示されるのですが IEだと文字が潰れる、というか上下が欠けたように表示されてしまいます。 ためしに行間指定 line-height:100%; をつけくわえてみたところ、IEでの文字はきちんと表示されるようになったのですが、 テーブル下部のボーダーから浮いてしまい思ったようなレイアウトになりません。 (Firefoxも同様に浮いてしまいます) 文字を欠けなく表示し、また下部ボーダーにぴったりくっつけるやり方がありましたら教えてください。 よろしくお願いいたします。

  • IE7以外のブラウザでCSSのフォントサイズが反映されません

    ホームページビルダーでCSSを使ってサイト作成しているのですが、 IE7では指定通り表示されますが、FirefoxやGoogle Chrome等では反映されずかなり大きな文字表示になってしまいます。 CSSには BODY{ font-size:80%; font-family:Verdana, "MS Pゴシック", sans-serif; color:#333333; background-color:#FFFFFF; margin-left:auto; margin-right:auto; } と設定しています。 あとTD内にも反映させたい時は BODY,TD{ 設定内容; } にすればいいんですよね? でもこういう風に設定すると若干テーブルデザインが崩れてしまいます。 最近CSSを勉強し始めたのでどうすればいいかわかりません(>_<)

  • CSS-フォントサイズと行間を設定するとフォント指定が無効になっちゃう-

    CSSでフォントサイズとpxで指定し、行間をhigh-lineで指定すると行間は生きるんですが、フォント指定が無効になります。どのように設定したら、両者行きますか。IEでもFirefoxでもためしてみました。

  • BRのCSSをつかって行間を統一

    HTMLのBRを使用して改行を行っていますが、 FireFoxとIEとで行間が違ってきてしまいます。 行間をそろえるためにline-heightで統一したいのですが、 BRのCSSをつかって行間を統一することは可能でしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • 行間があかない

    PHPでプログラムを組んでいます。 Firefoxでは行間(line-height)があくのですが、IEではあきません。 行間があかない、つまり指定なしの行間となってしまいます。 $tag_new .= $i . ".<a href =./index.php?mode=diary&id=' . $row[id] . '>" . $title . "</a><img src = ./images/new.gif><br />\n"; とプログラムを組んで、 <div class="new">新着コラム<br /> {$tag_new}</div> と表示しています。 ふしぎなことに、新着コラムとつぎの行だけ行間があきます。 Firefoxではすべてあきます。 Cssでは .new { width:210px; text-align: left; line-height: 24px; float:left; margin: 10 10 10 0; padding: 5; border:1px solid #800000; clear : left; } としています。 解消法あれば教えてください。

    • ベストアンサー
    • HTML
  • IEとfirefox、行間の表示が異なってしまう

    ulタグをline-heightで行間指定した場合、firefoxとIEでは表示が異なってしまいます。 firefoxでちょうど良い行間にするとIEでは詰まりすぎて文字がつぶれてしまったり。 解消方法を教えていただけないでしょうか?

    • ベストアンサー
    • HTML
  • IE8でhタグの行間が詰まることについて

    現在HPを制作しています。 IE8でHPを表示し、文字を拡大すると、 「あるPCでは文字が大きくなり改行して表示されます。そして、改行したときに行間が詰まって表示されます」 「あるPCでは拡大されずにそのままの大きさで表示されます」 どちらもIE8(バージョンは同じ)です、OSは確認しておりません。 私的にはPCに搭載しているフォントが原因かと考えていますが、web初心者のためとても苦戦しています。 まだアップしていないのでサイトを載せることができないのですが、同じ様な現象を知っている方いらっしゃれば、解決方法を教えていただけたら幸いです。 分かりづらい文章があれば補足させていただきます。 よろしくお願いいたします。 fontのcssは *{ color: #333333; font-size: 12px; line-height: 18px; text-decoration: none; margin: 0; padding: 0; word-wrap:break-word; } font-familyは "メイリオ",Meiryo,"MS Pゴシック", Osaka,sans-serif; hタグのcssは h2 { color: #8fc42a; font-size: 15px; font-weight:bold; margin:11px 0 8px 0; } になります。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • IE8とIE9の文字間・行間

    ウェブサイトを作っています。 IE8と、IE9でそれぞれ見ると、IE9のほうが文字間・行間が詰まるのですが、何か解決方法はないでしょうか。 フォントはメイリオを使用しています。 ブラウザの「表示」→「文字サイズ」でサイズを変更できるように、フォントサイズは%指定にしています。 ご存知の方いらっしゃいましたら教えてください。。 よろしくお願い致します。

  • <br /> 行間があかない

    IE6を使っています。 <br /> 1つだとふつうに改行されています。 しかし行間をあけようと <br /><br />  としても改行されるだけで行間があきません。 最新のFirefoxではちゃんと行間があきます。 どちらのブラウザでも意図どおり見れるようにしたい のですが、これは解決できないでしょうか?

    • ベストアンサー
    • HTML
  • h1とh4の行間をせばめたい

    h1とh4の行間をせばめたい web初心者です。教えていただけますと助かります。 今htmlで <h1>ENGLISH<br /> 日本語</h1> <h4>日本語の文章<br /> English texts are here</h4> cssで h1 { font-size: 8.5pt; line-height: 120%; margin-top: 0px; color: #333; } h4 { font-size:7pt; line-height: 115%; color: #333; } と設定しているのですが、 日本語</h1> <h4>日本語の文章 の間の行間がとても大きいのでせまくしたいと思っています。 どうしたらよいでしょうか。 また</h1>と<h4>に</br>がなくても 改行されるのはなぜなのでしょうか・・・ 今はh1の一行分くらい空いているように見えるのですが 半分くらいにしたいと思っています。 よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう