• ベストアンサー

tdにスタイルシートをかけると、入れ子にすると文字が小さくなりすぎてしまいます

どうしてもテーブルでレイアウトしなければいけない状況にあります。 それで、文字のサイズを下げようとtdにスタイルシートをかけると、テーブルレイアウトなので入れ子になっているところが文字が小さくなりすぎてしまいます。 td{ font-size:80% } としています。 こういった場合、入れ子の中には影響しないようにする方法、もしくはほかの方法がありましたら、ご教授お願いいたします。

  • muxic
  • お礼率37% (97/259)
  • HTML
  • 回答数4
  • ありがとう数0

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

  • ベストアンサー
  • js_player
  • ベストアンサー率83% (10/12)
回答No.4

CSSを td{ font-size:80% } td td{ font-size:100% } とすると、入れ子の中には影響しなくなります。ただ、table でレイアウトするのはどうかと...。

muxic
質問者

補足

これだと、子セレクタのモダンブラウザ以外効かない問題は回避できそうですね。 このほうほうが、今のところベスト、でしょうか。 だいたい、テーブルでレイアウト自体がベストも何もないですけどw。 ありがとうございます。

その他の回答 (3)

回答No.3

> どうしてもテーブルでレイアウトしなければいけない状況にあります。 ん... tableを使うとレンダリングが遅くなりますよ. tableを使わなければ絶対に再現できない配置は無いですよ. と一応言っておくとしまして... font-size:80%;は親要素のフォントサイズに対して80%のサイズにするということになります. 1段階目はBody要素に対して80%なので目的の通りの動作になっています. しかし2段階目はBody要素に対して80%の80%(=64%)になっています. これが小さくなりすぎる原因です. himajin100000様の仰る方法の他にfont-size:12px;といったように直接サイズを指定することで回避できます. body>tableのように子セレクタを使って限定するのもいいと思います. ただしこの方法は比較的新しいブラウザでなければ適切に適用されない点に注意しなければなりません.

muxic
質問者

補足

子セレクタ、IE5.5でだめみたいですね。 入れ子の入れ子まで、子セレクタで設定しておくのが理想かもしれないですね。 テーブルでデザインしなきゃいけないとき、皆さんフォントのサイズはどこで決めているんでしょうね。。 だいたい、テーブルでデザインする人は、フォントのサイズをCSSで設定しないんでしょうか。そんなことはないと思いますが。。 みなさん、ありがとうございます。

  • nachi_t
  • ベストアンサー率66% (10/15)
回答No.2

文字サイズを小さくするのは、特定の「<td>」に対してですか? それとも、特定の「<table>」内の「<td>」全てにですか? 念の為、前者と後者の両方を書いておきますね。 ●前者 ・スタイルシート td.fseze { font-size:80% } ・HTML <table><tr> <td>a</td> <td class="fseze">b</td> </tr></table> ●後者 ・スタイルシート table.fseze td { font-size:80% } ・HTML <table class="fseze"><tr> <td>a</td><td>b</td> </tr></table> 後者について補足。 後者の「<td>」内に「<table>」を入れる場合は、その中の「<td>」の文字サイズも小さくなります。

muxic
質問者

補足

>文字サイズを小さくするのは、特定の「<td>」に対してですか? >それとも、特定の「<table>」内の「<td>」全てにですか? すべてのtdに対して、となります。 特定ならば、idやclassの中のtdで、というようにしていけば出来そうですね。 >後者の「<td>」内に「<table>」を入れる場合は、その中の「<td>」の文字サイズも小さくなります。 コレで悩んでいます。 テーブルでやってしまっているのもありますが、これ以上class,idを増やしたくないので、tdタグで一発でサイズを調整できるのが理想です。 って、こんな都合のいいのは難しいですよね。

回答No.1

>どうしてもテーブルでレイアウトしなければいけない状況にあります。 まぁ何か事情があるんだろう,Strictがどーのという話はおいておこう 俺はそれならclass属性やid属性を振ってセレクタをもっと限定するよ。

muxic
質問者

補足

入れ子が激しくて、その最後のテーブルにセレクタをせっていすればよいのかもしれませんが、、。 テーブルでレイアウト自体あれですよね。。。

関連するQ&A

  • tdの中のtableの中のtd

    .box{~~} という具合にfont-sizeやline-heightを スタイルシートで定義しています。 あるtdの中に<td class="box">で そのスタイルを適用させるまではいいのですが、 そのtdの中にさらにtableを作った場合、 その中にはboxスタイルが適用されません。 入れ子になっている影響かな?とは思うのですが、 この場合、どう指定したらよいのでしょうか。 すべてのtdにclass指定するのは避けたいです。

    • ベストアンサー
    • HTML
  • 入れ子table個々への文字サイズ指定の方法

    tableを入れ子にしてサイトのレイアウトを行っているのですが、 中に入っているtableに別の文字サイズを style="font-size : ○px;" の様に指定しようとしても、headで指定している文字サイズに邪魔されて 中に入っている小table個々の指定通りに表示されません。 <td>それぞれに一つ一つ入れていくと、指定通り表示されます。 これを、小テーブルに一括して指定するもう少しスマートな方法を御教えください。 確かBOXごとに名前を付けて指定していく方法があったと思うのですが 今探しても見つかりませんでした。どうかお助けください。

    • ベストアンサー
    • HTML
  • スタイルシート

    テーブルの中のタグで <td style="font-size:150%"> このような書き方をしてるのですが これはスタイルシートを使ってる事になりますか? style= は、スタイルシートとは別物ですか?

    • ベストアンサー
    • CSS
  • スタイルシート テーブル内のフォントサイズの設定

    スタイルシートを勉強しているんですが、テーブルが複数またはテーブル内にテーブルが複数という状況では、フォントサイズの指定はどうしたら良いのでしょうか? 単純に指定した場合、テーブル内はサイズ反映されないのでtd,trと指定してすれば全てに適用する訳ではないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • テーブルの中の文字もスタイルシートで設定するには

    <html> <head> <title>test</title> <STYLE TYPE="text/css"> <!-- h1 { font-size:50%;color:green; } '--> </STYLE> </head> <body> <h1> あああ <br> <table border=1> <tr><td>1</td><td>2</td></tr> <tr><td>3</td><td>4</td></tr> </table> </h1> </body> </html> これだとブラウザで見た時にテーブルの外の文字しか適用されていませんが テーブルの中まで範囲は及ばないのでしょうか? テーブルの中はテーブルの中専用のタグを作らないとダメでしょうか? テーブルの外の文字と全く同じにしたいので一気に指定したいです。

    • ベストアンサー
    • HTML
  • スタイルシートの書き方を教えてください!

    各文章の字間を空けるために部分的に <FONT style="line-height:150%"color="#c0c0c0"> </FONT> このようにしていしていたのですが、ページ全体にスタイルシートを使用して字間を調整するにはどのようなタグを書けばいいのでしょうか?色々と書き方があると思うのですが、素人にもわかりやすいように教えていただけますでしょうか、今現在使っているスタイルは以下の通りです。それをどのように書き換えればいいのでしょうか?どなたかおしえていただけますでしょうか。 <style type="text/css"><!-- body{ font-size : 10pt;color : #cccccc; background-color: #000000;} body{ font-face="MS UI Gothic, ヒラギノ明朝 Pro W3;} body{ font-style : "line-height:150%"; } TABLE { font-size : 10pt;color : #cccccc; } TABLE { font-face="MS UI Gothic, ヒラギノ明朝 Pro W3; } TABLE {font-style : "line-height:150%";} td{font-size : 10pt;color : #cccccc; } td{font-face="MS UI Gothic, ヒラギノ明朝 Pro W3;} td{font-style : "line-height:150%"; } --> </style>

    • ベストアンサー
    • HTML
  • テーブルの一つのtdタグだけ、文字を小さく

    テーブルの一つのtdタグだけ、文字を小さくしたい場合は、 この方法でいいのでしょうか? <html> <head> <title></title> <STYLE type="text/css"> <!-- p { font-size: 20%; } '--> </STYLE> </head> <body> <table border=1 cellspacing=1 cellpadding=1> <tr><td>普通</td><td>普通</td></tr> <tr><td>普通</td><td><p>test</p></td></tr> </table> </body> </html>

    • ベストアンサー
    • CSS
  • (スタイルシート)文字サイズ変更ができる、できないの基準

    例えば<head>内に .px10 {font-size: 10px;} と記述し、 <p class=".px10">10ピクセルの文字</p> 上記のように記述すれば、ブラウザの表示→文字のサイズで文字サイズが変更可能ですが p{font-size:10px;} <p>10ピクセルの文字</p> では文字のサイズがブラウザで変更できないようです。この違いは何でしょうか?<td>タグ内にスタイルシートを記述するかしないか、の違いなんでしょうか? お分かりになる方がいましたら、ご教授いただけないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • TABLE内の、文字の大きさの設定

    スタイルシートで文字の大きさを指定しているのですが、 こんなの↓ body {font-size:10pt;} table {font-size:10pt;} td {font-size:10pt;} th {font-size:10pt;} まず、テーブル内もBODY内も指定どおりに文字の大きさは変わるのですが、 このあと、ブラウザの文字の大きさを、 最小、小、中、大、最大と変化させても、 BODY内は正しく変わりますが、 テーブル内は全く変化無しです。 IEでのみ検査してますが、 テーブルについても、BODY内と同じように、 文字の大きさが可変になるような設定方法を知りませんか?

  • Tableタグにスタイルシートを使用したらInternet Explorerで反映されない

    教えてgooで見つけた方法を使用し、テーブルタグ内の文字を一括で小さくしようと思って、以下のようにやってみました。 <head> <style type="text/css"> <!-- TABLE.test { font-size: small } --> </style> </head> <table class="test"> <tr><td>スタイルシートのおかげで文字が小さくなりました。</td></tr> しかし、FirefoxとNetscapeブラウザでは、思ったように上手く行ったものの、Internet Explorerでは文字フォントが通常のままで、反映されません。 これはInternet Explorerの仕様でしょうか? 改善策はありますか?

専門家に質問してみよう