• ベストアンサー

onMouseOverで複数(?)のセル内の色を変更したいとき

はじめまして、こんにちは。 初歩的な質問なので恐縮ですが、、どうしてもわからないのでどなたか教えてください(> <) テーブルの各行の上をカーソルが通過するとその行の色が変わる(通過しおわると元の色に戻る)というのをプログラムを作りたいのです。。 一行ごとでしたらonMouseOver,onMouseoutを使って 簡単にできますが、カーソルが『りんご』の行の上にあるときは『くだもの』のセルも一緒に色を変える、また『みかん』の行の上のときも『くだもの』のセルも一緒に色を変える・・・というように『バナナ』も『メロン』も同じように色変更させたいのです・・・ 説明が下手で大変申し訳ございませんが、どうかよろしくお願い致します。(ジャバスクリプトは勉強を始めたばかり・・・というレベルなのです比較的簡単なソースでお願いします) ソースは下記になります↓ <table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td rowspan="4">くだもの</td> <td>りんご</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>みかん</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>バナナ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>メロン</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td rowspan="2">野菜</td> <td>なす</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>とまと</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> よろしくお願い致しますm(__)m

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.5

#3です。 見返してみるとバグがあったりで、思い切ってだいぶ変更してみてました。 背景だけでなく、文字色を変えたりいろいろ希望がでてくるとおもいますので classで調整するといいかもしれないですね。 ちなみにあらたに行を追加するときのやりかたとしては・・・ 見出しになるtdにidをふって、それと同じ名前のclassを各行のtrに ふってやればいけるはず。 <style> .fruit{ background-Color:blue; } .vegetable{ background-Color:green; } .cereal{ background-Color:yellow; } .onmouse{ background-Color:red; color:white; text-decoration:blink; font-weight:bold; } </style> <script> window.onload=function(){ var trs=document.getElementsByTagName("tr"); var thisClass=""; var classNames=new Array(); for(var i in trs){ if(trs[i].className) classNames[trs[i].className]=true; trs[i].onmouseover=function(){ thisClass=this.className; this.className=this.className+(this.className.indexOf(" onmouse")==-1?" onmouse":""); document.getElementById(thisClass).className="onmouse"; } trs[i].onmouseout=function(){ this.className=this.className.replace(" onmouse",""); document.getElementById(thisClass).className=""; } } for(var j in classNames){ document.getElementById(j).onmouseover=function(){ for(var i in trs){ if(this.id==trs[i].className){ trs[i].className=trs[i].className+(trs[i].className.indexOf(" onmouse")==-1?" onmouse":""); } } } document.getElementById(j).onmouseout=function(){ for(var i in trs){ if(trs[i].className) if(trs[i].className.indexOf(" onmouse")>0){ trs[i].className=trs[i].className.replace(" onmouse",""); } } } } } </script> <table width="300" border="1" cellspacing="0" cellpadding="0"> <tr class="fruit"> <td rowspan="4" id="fruit">くだもの</td> <td>りんご</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>みかん</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>バナナ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>メロン</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td rowspan="2" id="vegetable">野菜</td> <td>なす</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td>とまと</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td rowspan="3" id="cereal">穀物</td> <td>米</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td>小麦</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td>トウモロコシ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table>

yu-tan2828
質問者

お礼

再度の丁寧なお返事どうもありがとうございます。 明日までなになんとかしなければならないものなので 早くご返事いただいてとっても嬉しいです! 『見出しになるtdにidをふって、それと同じ名前のclassを各行のtrに ふってやれば・・・』というのはやってみましたけど、スクリプトのエラーがでてきてできなかったような気が・・・でも再度やってみます!!私のことだからなにか間違ってた可能性大なので・・・(f^^;) ほんとうにありがとうございましたm(_ _)m

その他の回答 (4)

noname#39970
noname#39970
回答No.4

原理だけ 「くだもの」の色を変更するfunctionを作る function kudamono(color){} colorにセットされた色に変更する物として作成 overの時にりんごやみかん等を変更すると同時に変更したい色と一緒に作ったfunctionを呼ぶ out時は基本の色と一緒に呼べば戻る。透過なら"transparent"をセットして機能するようにしておく http://www.tohoho-web.com/css/reference.htm#background-color

yu-tan2828
質問者

お礼

お返事ありがとうございます。 原理もきちんと勉強していきたいと思います! 本当ににありがとうございましたm(_ _)m

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

classとidでこんな感じでも・・・ <style> .fruit{ background-Color:blue; } .vegetable{ background-Color:green; } </style> <script> window.onload=function(){ var onmouseColor="red"; var defaultColor=""; var trs=document.getElementsByTagName("tr"); for(i in trs){ trs[i].onmouseover=function(){ this.style.backgroundColor=onmouseColor; defaultColor=document.getElementById(this.className).style.backgroundColor; document.getElementById(this.className).style.backgroundColor=onmouseColor; } trs[i].onmouseout=function(){ this.style.backgroundColor=""; document.getElementById(this.className).style.backgroundColor=defaultColor; } } group=Array("fruit","vegetable") for(var j in group){ document.getElementById(group[j]).onmouseover=function(){ for(var i in trs){ if(trs[i].className) if(this.id==trs[i].className) trs[i].style.backgroundColor=onmouseColor; } } document.getElementById(group[j]).onmouseout=function(){ for(var i in trs){ if(trs[i].className) if(this.id==trs[i].className) trs[i].style.backgroundColor=defaultColor; } } } } </script> <table width="300" border="1" cellspacing="0" cellpadding="0"> <tr class="fruit"> <td rowspan="4" id="fruit">くだもの</td> <td>りんご</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>みかん</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>バナナ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>メロン</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td rowspan="2" id="vegetable">野菜</td> <td>なす</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td>とまと</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table>

yu-tan2828
質問者

お礼

お返事ありがとうございます。 シンプルなソースでとても参考になりました。 一点質問ですが、このソースの場合、親セルが右に3~5個増えた場合(ここで言う親セルは『くだもの』『野菜』にあたります)どうすればよいのでしょうか?? ちょっといじってみたのですが、、やはりどうにもできませんでした(> <) ほんとに質問ばかりですみませんが、よろしかったらぜひ教えて下さいm(_ _)m

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.2

<html> <script language="JavaScript" type="text/javascript"> function k_over(elem){ elem.style.backgroundColor = "#ffff00"; var kudamono = document.getElementById("kudamono"); kudamono.style.backgroundColor = "#ffff00"; } function k_out(elem){ elem.style.backgroundColor = ""; var kudamono = document.getElementById("kudamono"); kudamono.style.backgroundColor = ""; } function y_over(elem){ elem.style.backgroundColor = "#ffff00"; var yasai = document.getElementById("yasai"); yasai.style.backgroundColor = "#ffff00"; } function y_out(elem){ elem.style.backgroundColor = ""; var elem = document.getElementById("yasai"); elem.style.backgroundColor = ""; } </script> <body> <table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td id="kudamono" rowspan="4">くだもの</td> <td onmouseover="k_over(this);" onmouseout="k_out(this);">りんご</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td onmouseover="k_over(this);" onmouseout="k_out(this);">みかん</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td onmouseover="k_over(this);" onmouseout="k_out(this);">バナナ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td onmouseover="k_over(this);" onmouseout="k_out(this);">メロン</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td id="yasai" rowspan="2">野菜</td> <td onmouseover="y_over(this);" onmouseout="y_out(this);">なす</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td onmouseover="y_over(this);" onmouseout="y_out(this);">とまと</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> </body> <html> ------------------------------- <td onmouseover="y_over(this);" ・・・ 等のthisはその要素自身を意味します。ちょっと難しいかもしれませんが、使えると非常に便利なので覚えて損はないと思います。 (要素).style.backgroundColorに値を入れれば背景色が変わります。指定形式はいくつかありますが、ここでは#rrggbb形式で指定しています。(これは大丈夫でしょうか?) 他、"yellow"とかでもOKです。 document.getElementById("要素のID")で要素が取得できます。これでkudamonoやyasaiのセルを取得しています。 ここではkudamonoとyasaiの関数を分けましたが、ちょっと工夫すれば共通関数にすることができると思います。(g_over(this, "kudamono/yasai");として呼べるようにする) 参考になれば幸いです。

yu-tan2828
質問者

お礼

お返事ありがとうございます。 説明までして下さったのでとてもわかりやすかったです。 参考になりました!! 本当にありがとうございましたm(_ _)m

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

サンプルです。 <html> <head> <title></title> <style type="text/css"> .mouseover { background-color:#666; color:#fff; } </style> <script type="text/javascript"> function sample1(obj){ // 親(TR)のclassを書き換え obj.parentNode.className = 'mouseover'; // 親の親(tbody)を得る var TBOD = obj.parentNode.parentNode; // tbodyの最初の行・最初のセルのclassを書き換え TBOD.rows[0].cells[0].className = 'mouseover'; } function sample2(obj){ obj.parentNode.className = ''; var TBOD = obj.parentNode.parentNode; TBOD.rows[0].cells[0].className = ''; } </script> </head> <body> <table width="300" border="0" cellspacing="0" cellpadding="0" id="TBL01"> <tbody> <tr> <td rowspan="4">くだもの</td> <td>りんご</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>みかん</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>バナナ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>メロン</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </tbody> <tbody> <tr> <td rowspan="2">野菜</td> <td>なす</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>とまと</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </tbody> </table> <script type="text/javascript"> // 処理対象のtableを得る var TBL = document.getElementById('TBL01'); // 全行・全セルを処理 for(var i=0;TBL.rows[i];i++){ for(var j=0;TBL.rows[i].cells[j];j++){ // onmouseover,onmouseoutを追加する TBL.rows[i].cells[j].onmouseover=function(){sample1(this)}; TBL.rows[i].cells[j].onmouseout=function(){sample2(this)}; } } </script> </body> </html>

yu-tan2828
質問者

お礼

お返事ありがとうございます。 サンプルまで載せていただきありがとうございました! 一人では解決できなかったのですごく嬉しいです。 難しそうですが・・・サンプルをみて勉強したいと思います。 本当にありがとうございましたm(_ _)m

関連するQ&A

  • 複数の場所(tableの中のtd)の色を変更する

    いつもお世話になっています。 以前こちらで質問させて頂き、途中までは解決したのですが (ありがとうございました)、また新たに問題が発生してしまいましたので・・・どなたか助けて下さい(応用がどうしてもできないので ・・・行き詰まってしまいました><) やりたいことはテーブルの各行の上をカーソルが通過すると その行の色が変わる(通過しおわると元の色に戻る)という プログラムをつくりたいのです。。 しかし問題は、一行そのまま色が変わるというのではないことです。 下にソースがありますが、カーソルが『りんご』上にあるときは 『くだもの1』『くだもの2』のセルも一緒に色を変える、また、 『みかん』でも『バナナ』でもカーソルが上を通過してるときは 『くだもの1』『くだもの2』のセルを一緒に色を変える・・・というようにしたいのです(『なす』や『豚肉』達も同じです) 今できているソースだと『みかん』『バナナ』『メロン』のどれも 『くだもの1』しか色が変更されません。 どうすれば『くだもの2』も一緒に色変更されるのでしょうか? わかりずらい内容でしたらすみません(><) お手数おかけしますがどうかよろしくお願い致します。 ソースは以下になります(前回教えていただいた方のソースを そのまま使用していますm(_ _)m) ※違うプログラムの組み方でも大丈夫です。 <style> .fruit{ background-Color:blue; } .vegetable{ background-Color:green; } .cereal{ background-Color:yellow; } .onmouse{ background-Color:red; color:white; text-decoration:blink; font-weight:bold; } </style> <script Language="JavaScript"> <!-- window.onload=function(){ var trs=document.getElementsByTagName("tr"); var thisClass=""; var classNames=new Array(); for(var i in trs){ if(trs[i].className) classNames[trs[i].className]=true; trs[i].onmouseover=function(){ thisClass=this.className; this.className=this.className+(this.className.indexOf(" onmouse")==-1?" onmouse":""); document.getElementById(thisClass).className="onmouse"; } trs[i].onmouseout=function(){ this.className=this.className.replace(" onmouse",""); document.getElementById(thisClass).className=""; } } for(var j in classNames){ document.getElementById(j).onmouseover=function(){ for(var i in trs){ if(this.id==trs[i].className){ trs[i].className=trs[i].className+(trs[i].className.indexOf(" onmouse")==-1?" onmouse":""); } } } document.getElementById(j).onmouseout=function(){ for(var i in trs){ if(trs[i].className) if(trs[i].className.indexOf(" onmouse")>0){ trs[i].className=trs[i].className.replace(" onmouse",""); } } } } } // --> </script> <body> <table width="300" border="1" cellspacing="0" cellpadding="0"> <tr class="fruit"> <td rowspan="4" id="fruit">くだもの1</td> <td rowspan="4" id="fruit">くだもの2</td> <td>りんご</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>みかん</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>バナナ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>メロン</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td rowspan="2" id="vegetable">野菜1</td> <td rowspan="2" id="vegetable">野菜2</td> <td>なす</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td>とまと</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td rowspan="3" id="cereal">肉1</td> <td rowspan="3" id="cereal">肉2</td> <td>豚肉</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td>鶏肉</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td>牛肉</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> </body> </html> どうぞよろしくお願い致します。

  • tableセルに色を付ける

     tableセルに色を付けます。  で、行で指定しようとtrタグにbgcolorをいれました。  ネスケでは問題ないのですが、ie6だとテーブルの外にも色がついてしまい変です。  セルを結合させたりしたりしてることが影響あるのでしょうか?ieのバグですかね?  コレを解決するには、trで色を付けるのを諦めて、セルごと(tdやth)に指定していくしかないのでしょうか。  スタイルシートは使わない前提です。htmlだけでの解決があったら教えてください。 <html> <head> </head> <body> <table border="10" align="center"> <tr> <th colspan="2">タイトル</th> </tr> <tr> <td height="70" rowspan="2" align="center" valign="top">1</td>  <td>あ</td> </tr> <tr>  <td>い</td> </tr> <tr bgcolor="red">  <td>2</td>  <td>う</td> </tr> </table> </body> </html>

    • ベストアンサー
    • HTML
  • セルの高さを固定したい

    こちらの質問と同じです。 http://oshiete1.goo.ne.jp/qa4888659.html IEにおいて、隣に結合したセルがあり、中央の高さを固定したいという状態です。 条件として、”基本HTMLは変更しない”が重要です。 テーブルの変わりにdivにする、などは求めていません。 ■HTML <table> <tr> <td>&nbsp;</td> <td rowspan="3">結合セル</td> </tr> <tr> <td>高さを固定</td> </tr> <tr> <td>&nbsp;</td> </tr> </table> HTMLで高さを指定しても、CSSでheightやmax-heightで指定しても伸びてしまいます。 何か方法はあるでしょうか?

    • ベストアンサー
    • HTML
  • HTMLのテーブル内容を配列にするには

    <html> <head></head> <body> <table border="0">   <tr>     <td>りんご</td>     <td>100円</td>   </tr>   <tr>     <td>みかん</td>     <td>80円</td>   </tr>   <tr>     <td>もも</td>     <td>160円</td>   </tr> </table> </body></html> 上のような内容のHTMLページを読み込み、 テーブルの一番左の行(りんご、みかん、もも)の内容を   @list=("りんご","みかん","もも"); このように配列に代入したいのですが、 どうすればいいでしょうか。よろしくお願いします。

    • ベストアンサー
    • Perl
  • テーブルのレイアウトがおかしくなる

    畏れ入ります。 テーブルを作っているのですが奇妙な現象にあっています。 <table border="1" width="100%"> <tr> <th width="18">&nbsp;</th> <th width="100">&nbsp;</th> <th>&nbsp;</th> <th width="100">&nbsp;</th> </tr> <tr> <td rowspan="2">&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td colspan="3">&nbsp; <!-- ここに たくさんの 文字列を入れると ・・・ --> </td> </tr> </table> このコメントの部分が無い状態では正常にでていますが、 ここにたくさんの文字列(半角30文字程度でおかしくなります)を投入すると、レイアウトが異常に崩れてしまいます。 文字列は改行してもかまわないのですが テーブル1行目2行目のセルサイズ(width)がこのように変化してしまうと困るのです。 どのようにしたら良いか(width=100の部分を守らせたい) 教えてください。

    • ベストアンサー
    • HTML
  • 表の結合をcsvで保存するには?

    教えてください。 商品検索ツールを利用しています。 商品詳細データはcsvで保存されます。 表の結合をしたいのですがうまくいきません。 たとえばビルダーで編集すると <TABLE border="1"> <TBODY> <TR> <TD colspan="4">&nbsp;商品の詳細</TD> </TR> <TR> <TD rowspan="2">&nbsp;コード&nbsp;</TD> <TD colspan="2">&nbsp;&nbsp;サイズ</TD> <TD rowspan="2">価格&nbsp;&nbsp;</TD> </TR> <TR> <TD>mm&nbsp;</TD> <TD>&nbsp;インチ</TD> </TR> <TR> <TD>&nbsp;000005</TD> <TD>&nbsp;***</TD> <TD>○○&nbsp;</TD> <TD>&nbsp;¥50</TD> </TR> </TBODY> </TABLE> と、このようにソースに表示されますが、 これらをcsvで保存しても???になります。 このような表をcsvファイルで作成することは可能なのでしょうか? よろしくお願い致します。

  • マウスオーバー時テーブルの背景色を変えているのですが

    質問させていただきます。 テーブルを作成してマウスオーバーしている行の バックカラーを変えるプログラムを作成しています。 ですが、rowspanを使用すると、rowspanが別の行 扱いになり、バックカラーが変えられなくなってしまいました。 一緒にしたい場合どうしたら良いでしょうか。 もしわかりましたらご教授下さい。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <meta http-equiv="Content-Style-Type" content="text/css"> <script type="text/javascript"><!-- firstcolor="#ffffff"; //初めの色 nextcolor="#eeeeee"; //変更後の色 function table_row(table_id){ tobj=document.getElementById(table_id).tBodies[0]; for (i=0; i<tobj.rows.length;i++){ tobj.rows[i].onmouseover=function(){this.style.backgroundColor=nextcolor}; tobj.rows[i].onmouseout=function(){this.style.backgroundColor=firstcolor}; } }// --></script> </head> <body> <table border=1 id="data_table2"> <thead> <tr> <th>No</th><th>DATA1</th><th>DATA2</th><th>DATA3</th> </tr> </thead> <tbody> <tr> <td>No</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td> </tr> <tr> <td>No</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td> </tr> <tr> <td rowspan="2">&nbsp;</td><td rowspan="2">&nbsp;</td><td>DATA</td><td>DATA</td> </tr> <tr> <td colspan="2">&nbsp;</td> </tr> <tr> <td>No</td><td>DATA</td><td>DATA</td><td>DATA</td> </tr> </tbody> </table> <script>table_row("data_table2")</script> </body> </html>

  • セルの高さを固定するには?

    2列2行のテーブルを作り、右の列をrowspan=2で結合しています。 右の列はテキストや画像を追加入力していくので、縦が長くなっていきます。 その際、左上のセルだけ高さを固定し、左下のセルは自動で高さが決まるようにしたいと思っています。 が、左上のセルにheight=150と入力しても、右が伸びるにつれて長くなってしまいます。 CSSで指定しても同じです。 rowspanを使うと、結合していないセルの高さを固定することはできないのでしょうか。 良い解決策がありましたら、お知恵をお貸し下さい。 <table> <tr> <td>ここを固定したいです</td> <td rowspan="2">ここが長くなっていきます</td> </tr> <tr> <td>ここは右が長くなるにつれて自動で伸びるようにしたいです</td> </tr> </table>

    • ベストアンサー
    • HTML
  • セル内の文字が中央に・・・

    タグでホームページを作っているのですが 表の中の文字が中央に表示されます <table border="1"> <tr><td rowspan="3">あ</td><td>あ</td></tr> <tr><td>あ</td></tr> <tr><td>あ</td></tr> </table> ↑このようなタグを使ってますが 左の「あ」が中央に行ってしまいます 普通通りに上から表示するタグありましたら教えてください?

  • FireFoxでborder-collapseを使うと余計な枠線が表示される

    FireFoxでborder-collapse:collapseを指定すると、余分な枠線が表示されてしまいます。 IEでは問題ありません。 <HTML> <HEAD> <title>TEST</title> <style type="text/css"> table { border-collapse: collapse; } td { border: 1px solid black; } td.none{border:none;} </style> </HEAD> <BODY> <table> <tbody> <tr><td rowspan="2">test</td><td class=none>&nbsp;</td><td rowspan="2">text</td><td class=none>&nbsp;</td></tr> <tr><td class=none>text</td><td td class=none>&nbsp;</td></tr> <tr><td rowspan="2">test</td><td class=none>&nbsp;</td><td rowspan="2">text</td><td class=none>&nbsp;</td></tr> <tr><td class=none>text</td><td td class=none>&nbsp;</td></tr> <tr><td class=none>&nbsp;</td><td td class=none>&nbsp;</td><td class=none>&nbsp;</td><td class=none>&nbsp;</td></tr></tbody> </table> </BODY> </HTML> 何か対策は無いでしょうか?

専門家に質問してみよう