• 締切済み

Firefoxを使ってるのですがズームするとTableの線(ボーダー)が消えてしまいます!

他のページにも投稿したのですが、どうも質問した場所が違ってたよう なので、もう一度ここで質問し直させてください。お願いします。 Firefoxを使ってるのですがズームするとTableの線(ボーダー)が消えてしまいます! 同じTableを3パターンのズーム度でアップしました。 http://i800.photobucket.com/albums/yy282/nothingspecialda/tanuki.jpg​ 左は問題無いのですが、真ん中と右はTableの線が一部消えてしまってます。 ちなみにここの質問一覧ページもズームすると枠線が消えたりします。 http://oshiete1.goo.ne.jp/205/c709.html ちなみにIE8でも似たような現象がありました! 何が原因でしょうか?どうすれば改善するでしょうか? アドバイスお願いします。 サンプルTableのHTMLとCSSを書いておきます。 ☆HTML <table> <tr> <td>たこ焼き</td> </tr> <tr> <td>たこ焼き</td> </tr> <tr> <td>たぬき</td> </tr> <tr> <td>たぬき</td> </tr> <tr> <td>ほうれん草・ピーマン</td> </tr> <tr> <td>ほうれん草・ピーマン</td> </tr> </table> ・CSS tr, td {border:1px solid black;} table{text-align:center; border-collapse:collapse;}

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

みんなの回答

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

フルページズームの際のブラウザ固有の不具合の様です。 tableのborderがズームイン/アウトの際に部分的に非表示になってしまう点に関しては、特にFirefox3とIE7が弱いみたいですね。Opera9.61では非表示にこそならないですが、時々太さが不揃いになる現象が見られました。確認した中ではSafari4が一番優秀の様で、非表示になる事も線の太さが不揃いになる事も起こりませんでした 検証してみましたところ、Firefox3では"border-collapse: separate;"にする事で非表示や太さの不揃いという不具合は回避できる様です。 ソースの様な”1行に1列”の表組みであれば、CSSを: table { border-collapse: separate; border-spacing: 0; border-bottom: 1px solid #000; } td { border: 1px solid #000; border-bottom: none; text-align: center; } とする事で"border-collapse: collapse;"と同じ見え方にでき、且つズームイン/アウトの際のボーダー表示の不具合も回避できます。 ※table {(省略)border-top: 1px solid #000;}とtd {(省略)border-top: none;}の組み合わせでも結果は同じ事になりますので、任意でどうぞ。 ”1行に2列以上”の場合は、上下だけでなく隣合うセルの左右のボーダーも重複してしまうので、CSSは: table { border-collapse: separate; border-spacing: 0; border-bottom: 1px solid #000; border-left: 1px solid #000; } td { border: 1px solid #000; border-bottom: none; border-left: none; text-align: center; } とでもしておけば良いです。 ※これも上記と同じ理屈で、table {(省略)border-right: 1px solid #000;}とtd {(省略)border-right: none;}の組み合わせでもかまいません。 ただし、IE7以下はborder-spacingが効かない為、"border-collapse: separate;"とする事でセルとセルの間に隙間ができてセルが切り離されて見えてしまい、"border-collapse: collapse;"の場合と同じ結果にはなりません。 IE7以下対策としてはNo.1様の様にコンディショナル・コメントを使う手もあるのですが、HTML側の<table>の記述に「cellspacing="0"」の属性を追加しておく事でも回避できます。

  • xs200
  • ベストアンサー率47% (559/1173)
回答No.1

table { text-align:center; border-left: 1px solid black; border-right: 1px solid black; border-top: 0; border-bottom: 0; border-spacing: 0px; border-collapse: separate; } <!--[if IE]> <style type="text/css"> table { text-align: center; border-collapse: collapse; } </style> <![endif]-->

関連するQ&A

  • FireFoxでのtable枠線の表示/非表示

    下記HTMLコードは テーブル(TDレベル)の枠線を表示するCSSクラスと 非表示とするCSSクラスを用意し、ボタンを押す事 によりjavascriptでCSSクラスを変更するものです。 <html> <head> <style TYPE="text/css"><!-- table.tclass { border-collapse:collapse; } td.b { border: 1px solid; border-color:#000000; } td.w { border:noe; border-color:#FFFFFF; } --></style> <script Language="JavaScript"><!-- function delLine(elem){ var obj = document.getElementById(elem); obj.className = "w"; } // --></script> </head> <body> <table class="tclass"> <tr> <td class="b" id="td1">Table1</td> <td class="b" id="td2">Table2</td> </td> </tr> </table> <button type='button' onclick='delLine("td2");' >枠線を消す</button><br> </body> </html> 上記のように2つのテーブルセルのうち、右側セルの枠線を 消したいのですが、 右側セルの右枠だけ消えて、残りの枠は表示され たままになります。 因みに onclick='delLine("td1");delLine("td2");' のように、両方のセルともに枠線を消す場合は問題ありません。 また、tableタグのborder-collapse:collapse指定を外しても 成功する事を確認していますが、border-collapse:collapseは できれば指定したいです。 また、FireFox以外ではIE、safari、operaでは問題ありません。 何か対処方法をお分かりの方がおりましたらお教えください。 よろしくおねがいします。

    • ベストアンサー
    • HTML
  • IEで細い線

    こんにちはー。 cssでテーブルの線を細くするために こんな感じでやってみました。 クロームでは出来たのですが IE(バージョン9)で閲覧すると、線そのものが表示されません IEでも表示させるには、どーすればいいですか? ―――― <html> <head> <style type="text/css"> table[summary="WebDesign"]{ border-collapse: collapse; width: 400px; } table[summary="WebDesign"],table[summary="WebDesign"] td{ border:solid 1px #1C79C6; } </style> </head> <body> <table summary="WebDesign"><!-- summaryは必須 TBODY+ -->  <tbody><!-- tbodyはひとつ以上必須 -->   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>  </tbody> </table> </body> </html>

    • ベストアンサー
    • CSS
  • HTML & CSS について質問です。

    HTML & CSS について質問です。 外部ファイルのスタイルシートに TABLE.test{ border-collapse:collapse; border-color:#000000; border-style: solid; } HTMLファイルに <TABLE ID="test"> <TR> <TD></TD><TD></TD> </TR> </TABLE> とした場合に外側の線は結合され黒色で表示されるのですが、 内側の線は灰色で表示されてしまいます。 全ての線を細線で表示したいと考えています。 アドバイスよろしくお願いたします。m(_ _)m

  • 特定のテーブルにだけ任意の書式を適用するHTMLかCSS

    特定のテーブルにだけ任意の書式を適用するHTMLかCSS 以下のHTMLテーブルで、入れ子テーブル(区画1~区画4)には罫線なし、 外枠(田の字)だけ、1pxの黒い罫線を引くにはどういうのが効率いいですか? 【解決案1】こうすると、入れ子テーブル(区画1~区画4)まで罫線が現れてしまいます。 table,td,th {border-collapse: collapse; border: 1px solid #000;} 【解決案2】こうすると、該当する全ての<td>タグを<td class="tdstyle">と仕込むのも面倒です。 table {border-collapse: collapse; border: 1px solid #000;} .tdstyle {border: 1px solid #000;} 【解決案3】外枠(田の字)だけ、以下のようにしたいですが、bordercolorってIEのみ有効なタグですよね? <table border="1" style="border-collapse: collapse" bordercolor="#111111"> 外枠(田の字)だけに、IDをつけたり識別して、効率よく処理できませんか? <html> <head> <style TYPE="text/css"> <!-- --> </style> </head> <body>   <table cellpadding=10>     <tr>       <td>         <table cellpadding=10><tr><td>区画1</td></tr></table>       </td>       <td>         <table cellpadding=10><tr><td>区画2</td></tr></table>       </td>     </tr>     <tr>       <td>         <table cellpadding=10><tr><td>区画3</td></tr></table>       </td>       <td>         <table cellpadding=10><tr><td>区画4</td></tr></table>       </td>     </tr>   </table> </body> </html>

    • ベストアンサー
    • HTML
  • cssでテーブルで細い線

    スタイルシートを使って 1ピクセルの細い線にしようと、 サンプルのように以下のようにしてみましたが 中の線(td?)が二重になってしまいます 一線にするのにどのようにすればイイですか? ―――――――― .table2 { width: 400px; /* テーブルの横幅 */ border-collapse: collapse; /* 枠線の表示方法 */ border: 1px #1C79C6 solid; /* テーブル全体の枠線(太さ・色・スタイル) */ background-color: #FFFFFF; /* 背景色 */ } .table2 TD { border: 1px #1C79C6 collapse; /* セルの枠線(太さ・色・スタイル) */ } ―――――――――――――― <TABLE CLASS="table2"> <TR> <TD>WebデザインA</TD> <TD>WebデザインB</TD> </TR> <TR> <TD>WebデザインC</TD> <TD>WebデザインD</TD> </TR> </TABLE>

    • ベストアンサー
    • CSS
  • CSSの設定方法について

    CSSは外部ファイルにし、十数枚あるHTMLに「div id=contents内にあるTableは全て共通のレイアウト」 となるよう下記のCSSを設定しました。 --------CSS----------------------------------------- #contents{margin-left: 70px;} #contents table{width: 650px; border: solid 1px #B1B2B2; border-collapse: collapse; margin: 15px 0px;} #contents tr, td ,th{padding: 4px; border: solid 1px #B1B2B2; border-collapse: collapse;} --------HTML----------------------------------------- <div id="contents">  <table>   <tr>    <th>項目</th>   </tr>   <tr>    <td>項目1</td>   </tr>  </table> </div> ------------------------------------------------------- しかし、どうしても違うレイアウトにしたいTableが出てきた為、下記CSSを追加、 HTMLは<div id="contents">の部分を<div id="login">に変更したのですが 追加CSSが反映されず、id=contentsの設定が残ったままになってしまいます。 色々いじってみたのですが、どこが間違っているのやら皆目見当がつきません。 --------追加CSS----------------------------------------- #login{text-align: center; } #login table{width: 450px; border: solid 2px #666666; border-collapse: collapse;} #login tr, td ,th{border: solid 1px #666666; border-collapse: collapse;} --------HTML----------------------------------------- <div id="login">  <table>   <tr>    <th>項目</th>   </tr>   <tr>    <td>項目1</td>   </tr>  </table> </div> 拙い文章で恐縮ですが、ご助言いただけると大変助かります。 説明不足や意味不明箇所は補足させていただきますので、どうぞよろしくお願い致します。

    • ベストアンサー
    • HTML
  • CSSの部分リセットについて

    サイト全体に影響するCSSでtableのボーダーを非表示に指定しています。 ところが、一部分のみCSS無指定状態のtableを表示する必要が出てしまいました。 該当するtableに別クラスを割り当てて、その部分だけを個別に指定しようと思いましたが、実際見てみると、CSS無指定状態とは微妙に見た目が異なってしまいます。 ====CSS内容==== table { border: 0px none; } td { border: 0px none; border-collapse: collapse; } /*普通にtableを書くとボーダーが消えてしまうので個別に指定*/ .reset table{ border: 3px ridge; } .reset td{ border: medium ridge; border-collapse: collapse; } ====HTML==== <div class="reset"> <table> <tr> <td>ああああああ</td> <td>ああああああ</td> </tr> <tr> <td>いいいいいい</td> <td>いいいいいい</td> </tr> </table> </div> 元のtableの指定はサイト全体に影響が出てしまうため、修正することができません。 いまさらながらものすごく後悔していますが・・・。 また、今後の使いまわしを考えると、IDの指定もできません。 無理矢理何とかできないかと思い、上記の方法を取りましたが、やはりうまくいきません。 理想としては、指定した箇所のみCSSの影響がなくなるということですが、いろいろ調べても見つかりませんでした。 根本的に作り直しした方がいいのは理解していますが、何か方法があればと思い質問させていただきました。 どなたか良い案がありましたらお助けください。

    • ベストアンサー
    • HTML
  • テーブルの線の幅を一重の線にしたい

    <HTML DIR=LTR> <HEAD> </HEAD> <BODY> <TABLE border=1 bordercolor="#808080"> <TR> <TH>タイトル</TH> </TR> <TD>aaa</TD> </TR> <TR> <TD>bbb</TD> </TR> <TR> <TD>ccc</TD> </TR></TABLE> </BODY> </HTML> これにすると画像のように線の幅が二重線になってしまうのですが、 一重にするにはどうすればいいですか? <TABLE border=1 を<TABLE border=0にすると、線が消えてしまいます。

    • ベストアンサー
    • HTML
  • <table>のclass指定が継承されない

    <table>に指定したclass指定が、その下の<td>や<tr>に継承されずに困っています。 HTMLを <table class="sample"> <tr> <td>1-1</td> <td>1-2</td> </tr> <tr> <td>2-1</td> <td>2-2</td> </tr> </table> とし、 cssを table, td { border: 2px #2b2b2b solid; } とした場合、新しくhtmlとcssを作ると表自体と全セルに囲み線が作られます。 ですが、今運営しているHPに記述すると、<table>のborderのみしか表示されません。 試しに、<td>にclassを指定しなおしてみると、そのセルにも囲み線が表示されました。 全<td>にclassを指定すれば問題ないのかもしれませんが、それではあまりにも使い勝手が悪いため、何とかhtmlは<table>のみにclassを指定することで全セルに反映させたいと思っています。 考えられる原因としてはどのようなものがありますでしょうか…?

    • ベストアンサー
    • CSS
  • テーブル入れ子した時の、テーブル外枠罫線を非表示にしたい

    下記のように、入れ子にしたテーブルを作成しましたが、「AA, BB, 10, 20」のテーブル外枠線が太くなってしまいます。全て細い線で表示させるには、入れ子にしたテーブル外枠罫線を非表示にすれば良いのかなと思うのですが、どうすればよろしいでしょうか? また他によい方法があればアドバイスお願いします。 条件として、 (1)入れ子でテーブルを作成 (2)教えて!gooのように細い線を使用 です。 よろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <STYLE TYPE="text/css"> <!-- TABLE { margin: 0px; border: 1px solid #ff0000; border-collapse: collapse; } TD { padding: 0px; border-style: solid; } --> </STYLE> <TITLE></TITLE> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD>みかん</TD> <TD>バナナ</TD> <TD>パイン</TD> </TR> <TR> <TD>やさい</TD> <TD> <TABLE width="100%" border="1"> <TBODY> <TR> <TD>AA</TD> <TD>BB</TD> </TR> <TR> <TD>10</TD> <TD>20</TD> </TR> </TBODY> </TABLE> </TD> <TD>りんご</TD> </TR> <TR> <TD>いちご</TD> <TD>すいか</TD> <TD>れもん</TD> </TR> </TBODY> </TABLE> </BODY> </HTML>

専門家に質問してみよう