• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:上下中央になったのですが理由がわかりません。)

なぜWEBフォントなのに上下中央になるのか理由がわからない

このQ&Aのポイント
  • 上下中央になった理由がわからない。
  • line-heightの値が大きいほど真ん中に来る。
  • IEとファイヤーフォックスで見た目が違う。

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

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

なぜ仕様書を読まないの??  こんなところで聞いたって正確な情報は不可能  ⇒10.8 行の高さの計算: 'line-height'、'vertical-align'プロパティ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/visudet.html#line-height )  line-heightは、本来font-sizeよりも大きいのですが、このように小さな値が指定されていると期待と異なる表示になる事があります。  特に、IEの互換モードでは、ボックスの寸法をボーダー辺で解釈します。  IEの場合、ウェブ標準で動作するようにDOCTYPEを記述すると、ウェブ標準で表示されるはずです。  しかし、行中央に表示させる場合は、heightとline-heightの値を同じにすべきです。 なお、font-familyには、必ず総称ファミリ名(generic-family)を書かなければなりません。  

noname#226032
質問者

お礼

ありがとうございました。 行中央に表示させる場合は、heightとline-heightの値を同じにしないといけないのですね。

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

その他の回答 (1)

回答No.1

heightとline-heightの両方を定義しているから。 line-heightは、行間なので文字は行間の中で中央に配置されます。 line-height:5pxでは、height:1.2emよりかなり小さな値のため、 文字は高さ1.2emの要素高上部5pxに文字を中央配置しようとします。 line-height:15pxでは、height:1.2emとある程度同じ値のため、 文字は高さ1.2emの要素高上部15pxに文字を中央配置しようとします。 ※見え方が違う。 対象のブラウザがウェブフォントをサポートしていないから?

noname#226032
質問者

お礼

ありがとうございました。 行中央に表示させる場合は、heightとline-heightの値を同じにしないといけないのですね。

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

関連するQ&A

  • テーブルが左右上下中央表示にできない。

    <style type="text/css"> <!-- .tableley { text-align: center; } .tableley table{ margin-left: auto; margin-right: auto; } .tableley caption{ margin-left: auto; margin-right: auto; } bodytd{ letter-spacing :2px; line-height :15pt; font-size:80%;font-family:'Verdana'; color:#ffffff; } br{letter-spacing:normal;} body{overflow-y:hidden; margin:0;padding:0; background-attachment:fixed; } a{ text-decoration:none; color:#000000; } a:hover{ color:#808080; } --> </style> </head> <body> <table border="0" width="100%" height="100%" cellspacing="0" summary="テーブル"> <tr> <td colspan="3" style="border-bottom:1px solid #000000" bgcolor="#000000" valign=bottom><font size=5><b>SITE NAME</b></font> </td> </tr> <tr> <TD height="80%" width="250" align="center" valign="top" colspan="3"><BR> <BR> <table style="border: 1px dotted #cccccc;"> <tbody> <tr> <TD><IMG src="ConvertImage/ice.png" width="187" height="131" border="0"></TD> <TD height="120" width="200"> <div style="width: 270px; height:140px;color:#cccccc;font-size:10px;font-family:Verdana;overflow:auto; scrollbar-face-color:#000000; scrollbar-highlight-color:#000000; scrollbar-shadow-color: #000000; scrollbar-3dlight-color: #000000; scrollbar-arrow-color: #cccccc; scrollbar-darkshadow-color: #000000; scrollbar-track-color: #000000;"><FONT color="#cecfce">ここにテキスト<BR> </FONT></div> </TD> </tr> </tbody> </table> </TD> </tr> <tr> <td colspan="3" style="border-top:1px solid #000000" bgcolor="#000000" align="right" valign="top"><FONT color="#ffffff">SINCE</a> </td> </tr> </table> </body> と、ビルダーでフレームを使わず横三分割のサイトを作ったのですが 真ん中の白い部分にあるテーブルを白ページ上下左右中央に設置出来ず悩んでいます。どうか解決策を教えてくださいお願いします。

    • ベストアンサー
    • HTML
  • 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
  • cssで画像を中央に寄せる方法について

    よろしくお願いします。一部の画像を中央に寄せたいのですが方法が分かりません。現在の内容は以下のような感じです。 【html】 <p class="font"> スタイルシート <span class="color2">レッスンブック</span> パソコン <img src="img/hoge.gif" alt="テスト" width="250" height="130" /> インターネット プリンター </p> 【css】 .font2{ text-align: left; width: 750px; padding: 20px; border-top: 2px solid #191970; border-right: 2px solid #191970; border-bottom: 2px solid #191970; border-left: 2px solid #191970; margin-left: 0; margin-right: 10; background-color: #ffff00; font-weight: bolder; } imgのみ中央に寄せたいのですがご指導をお願い致します。 良く分からなかったのですが以下のような記述をしてみたのですが 中央に寄りませんでした。 <img src="img/hoge.gif" class="aaa" alt="テスト" width="250" height="130" /> cssに .aaa{ text-align: center; } また、同スタイルにborderとpadding、widthとpaddingを使用するのは 有効な方法では無いのでしょうか? 前回のご質問で他の方にご指導頂いたのですが誤って締め切ってしまいました。 どうぞよろしくお願い致します。

    • ベストアンサー
    • HTML
  • 上下の余白について

    下記のサイトのjqueryを自身のHPで使用しているのですが、私自身がマージンを設定しているわけでもないのに上下に相当な余白が入ってしまいます。 http://flowplayer.org/tools/demos/tabs/accordion-custom.html 下記が問題のhpです。上下の黒の部分になります。目測では200pxぐらいです。 http://kazu1213abi.web.fc2.com/others/accordion/accordion.html CSSなども使用しているみたいなのですが、コードを見ても私が初心者の為さっぱり分かりません。 一部(jquery.tools.min.jsとtabs-accordion.css)のファイルはサイトからダウンロードして問題のhtmlファイルと一緒にサーバーにアップしています。 tabs-accordion.cssの中身は、 /* root element for accordion. decorated with rounded borders and gradient background image */ #accordion { background:#333 url(/img/global/gradient/h300.png) 0 0; width: 300px; border:1px solid #333; -background:#666; } /* accordion header */ #accordion h2 { background:#ccc url(/img/global/gradient/h30.png); margin:0; padding:5px 15px; font-size:14px; font-weight:normal; border:1px solid #fff; border-bottom:1px solid #ddd; cursor:pointer; } /* currently active header */ #accordion h2.current { cursor:default; background-color:#fff; } /* accordion pane */ #accordion div.pane { border:1px solid #fff; border-width:0 2px; display:none; height:180px; padding:15px; color:#fff; font-size:12px; } /* a title inside pane */ #accordion div.pane h3 { font-weight:normal; margin:0 0 -5px 0; font-size:16px; color:#999; } と記述されています。もう一つjquery.tools.min.jsがあるのですが、中はごちゃごちゃしたコードが記述されています。 外部ファイルに関係なく強制的に上下の余白を無くす方法など解決方法などはあるでしょうか? 御教授ください。よろしくお願いします。 .

  • liタグのナビボタンがFirefoxで二重に表示。

    liタグでナビボタンを縦に3つ積みたいのですが、IEでは正しく表示しますが、何故かFirefoxでは2段めから2つずつ表示してしまい5つのナビボタンになってしまいます。どのように記述すれば良いのでしょう? <div id="sidebar"> <ul> <li id="aaa"><a href=""><span>aaa</span></li> <li id="bbb"><a href=""><span>bbb</span></li> <li id="ccc"><a href=""><span>ccc</span></li> </ul> </div> div#sidebar { width: 245px; float:left; border-right-width: 1px; border-right-style: solid; border-right-color: #CCCCCC; } div#sidebar ul li a { display: block; } div#sidebar ul li a span { position:absolute; width: 0; height: 0; overflow:hidden; } ul li#aaa a { width: 245px; height: 60px; background-image:url(image/aa.jpg); background-position: 10px 20px; background-repeat: no-repeat; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #999999; } ul li#bbb a { width: 245px; height: 60px; background-image:url(image/bb.jpg); background-position: 10px 20px; background-repeat: no-repeat; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #999999; } ul li#ccc a { width: 245px; height: 60px; background-image:url(image/cc.jpg); background-position: 10px 20px; background-repeat: no-repeat; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #999999; }

    • ベストアンサー
    • CSS
  • firefoxのみテーブルのborderが消える

    firefoxのみテーブルの上下のborderの一部が消えてしまいます。 ウィンドウのサイズを変えると消える位置が変わります。 消えないための方法はありますか? 【CSS】 table.aaa{ width:750px; border-top:1px solid #333; border-bottom:1px solid #333; border-collapse:separate; border-spacing:0; text-align:center; margin-top:30px; } td.bbb, td.ccc{ padding:30px 30px; } td.ccc{ width:100px; background:#000; color:#fff; } ul{ width:750px; margin-left: -23px; overflow:hidden; } ul li { display: inline; width: 200px; margin-left: 30px; float: left; } ul li img { display: block; border: 1px solid #555; } 【HTML】 <table class="aaa"> <tr> <td class="ccc">テスト1</td> <td class="bbb">※※※※※※※※※※</td> </tr> </table> <ul> <li><a href="xxx.html#w1"><img src="sample.jpg" width="200" height="150" ></li> <li><a href="xxx.html#w2"><img src="sample.jpg" width="200" height="150" ></li> <li><a href="xxx.html#w3"><img src="sample.jpg" width="200" height="150" ></li> </ul> <ul> <li><a href="xxx.html#w4"><img src="sample.jpg" width="200" height="150" ></li> </ul> <table~…~</ul>まで10個ほど繰り返す。

    • ベストアンサー
    • HTML
  • HTML 微妙なずれを修正したいです。

    http://matsudamakoto.web.fc2.com/index.html 上記URLの ナビゲーションと画像が微妙にcenterからずれてしまっているように感じます。 これらをうまくcenterに表示する方法を教えていただけませんか? cssのソースを提示させていただきます。 よろしくお願いいたします。 body { font-size:14px; line-height:150% } h1 { color:black; border-left:10px solid #cccccc; border-right:10px solid #cccccc; border-top:1px solid #cccccc; border-bottom:1px solid #cccccc; font-size:16px; padding:10px 0 10px 0; text-align:center; } p { text-align:left; border-left:10px solid #cccccc; border-right:10px solid #cccccc; padding:0 0 0 20px; } #menu { list-style-type:none; text-align:center; } #menu li { display:inline; border-right:5px solid #cccccc; padding:0 20px 0 20px; } .main { width: 100%; } .main div { width: 50%; margin: 0 auto; }

  • スタイルシートの横並びリスト中央配置について

    #Area_Navi { margin: 0; padding: 0; } #Area_Navi ul { margin-left: auto; margin-right: auto; text-align: center; list-style-type: none; list-style-position:inside; } #Area_Navi li { text-align: center; display: inline; padding: 0; margin-left: auto; margin-right: auto; float: left; width: 200px; } #Area_Navi a { display: block; border-left: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; background-color: #FFFFFF; font-size: 20pt; padding: 3px; text-decoration: none; color: #000000; margin: 1px 0px; text-align: center; } スタイルシートは上記なのですが、うまく中央配置されず 半端に左寄せになっています。 windows7 firefox を使用しています。 調べて position:relative; と記載しても上手く中央寄せになりませんでした。 どなたか、教えて頂けませんか。 宜しくお願い致します。

    • ベストアンサー
    • CSS
  • ウィンドウ全体をテーブルで表示するには?

    できればウィンドウ全体をテーブルにする方法を教えて欲しいです。 左右上下に余白がなく、ウィンドウの大きさと同じ大きさでテーブルが表示される様にしたいのですが、下記のタグをどうさわっても余白ができてしまいます…。 何処が間違いなのか教えて頂けると有り難いです。 下手ですがイメージもかいてみたので見てみて下さい。 分かり辛い説明で申し訳ありませんが、よろしくお願いします。 【HTML】 <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0" align="center"> <tr><td>たいとる</td></tr> <tr><td class="menu_td"><ul class="menu">めにゅー</ul></td></tr></table> 【CSS】 body{ background-image:url(***); background-repeat: repeat; } .menu_td{ padding-left:20px; height:20px; background-color:#fff; border-top:1px solid #ccc; border-bottom:1px solid #ccc; filter:alpha(opacity=75); -moz-opacity:0.75; } .menu{ margin:0px; padding:0px; list-style-type:none; } .menu li{ width:100px; height:20px; line-height:20px; float:left; } .menu li a{ padding-left:15px; height:20px; line-height:20px; background-image:url(***); background-position:0% 50%; background-repeat:no-repeat; display:block; } .menu li a:hover{ background-color:#efefef; } table{ border-collapse: collapse; border: 0px #999999 solid; color: #999999; font-size: 9pt; font-family: Verdana,Osaka,'MS UI Gothic'; } ul{ margin:0px; padding:0px 0px 0px 15px; list-style-type:circle; } よろしくお願いします。

    • 締切済み
    • CSS
  • コンテナの上下左右を囲う線のやり方は?

    こんにちは。ホームページを製作しているものです。 私のサイトでは、まず『大きなコンテナ』を定義して、その中に3つ、カラムのコンテナを定義しています。 その様な状態で『大きなコンテナ』の周りに線を引きたくて、上下左右を囲うborderを定義致しました。 border-top:1px solid #BBB; border-left:1px solid #BBB; border-right:1px solid #BBB; border-bottom:1px solid #BBB; これでInternet Explorer9では、思った通りに『大きなコンテナ』の周りが線で囲まれました。しかし、Firefox、Safari、Chrome、Operaといったブラウザでは、『大きなコンテナ』の上側の部分だけしか線が書かれませんでした。 理由を探しにググったところ、 1: http://gyauza.egoism.jp/clip/archives/2007/05/070509-background-clip/ 2: http://hajimetedesign.blog77.fc2.com/blog-entry-74.html 上記2サイトに解決法があるのではと思いました。 それは、両サイトともに以下の様な記述があり思い通りに行きそうな気がしたのです。 html , body {height:100%;} body > #container {height:auto;} #container { height:100%;/* for IE6 */ min-height:100%; background-color:#fff; border:solid #ccc; border-width:0 1px; } しかし、自分のサイトに適用してみたら上側の線は無事引かれましたが、左右側がブラウザのheightの100%の高さまでしか線が引かれず、下側の線は引かれないままでした。つまりブラウザをスクロールさせるほど高さ的にコンテンツがある場合は、左右の線は途中までしか引かれなかったのです。 上記2サイトの記述はコンテナの中に普通にコンテンツがあり、私のサイトは『コンテナの入れ子』というのが問題だと思いました。 どなたか解決方法をご教示願えないでしょうか? よろしくお願いいたします。 失礼致します。

    • ベストアンサー
    • CSS