IE6だと問題ないのですが、FirefoxやOperaでは画像のように表示が崩れてしまいます。
テーブルを崩れなくするにはどうすればいいのでしょうか?
ソースは以下のようにしています。
■CSS
table{border: 1px solid #CCCCCC;width: 300px;}
th{background-color: #eeeeee;border: 1px solid #CCCCCC;width: 100px;}
td{border: 1px solid #CCCCCC;}
#line{display: none;}
非表示にしたい行のtrに<tr id="line"> と設定しています。
■Javascript
function lineDisplay(){
document.getElementById("line").style.display = 'block';
}
Firefoxなどでは、display要素をblockではなくtable-rowを指定すると上手くいくと思います。
function lineDisplay() {
try {
document.getElementById("line").style.display="table-row";
} catch (e) {
document.getElementById("line").style.display="block";
}
}
ほんとだ、崩れますね。。。
いちおう、以下のように要素のclassName属性を操作するようにしたらできました。(Firefox2、Opera9で確認)
<html> <head> <style> table{border: 1px solid #CCCCCC;width: 300px;} th{background-color: #eeeeee;border: 1px solid #CCCCCC;width: 100px;} td{border: 1px solid #CCCCCC;} .line{display: none;} </style> <script> <!-- function lineDisplay(){ document.getElementById("line").className = ''; } //--> </script> </head> <body> <button onclick="lineDisplay();">表示</button> <table><tr> <th>a</th> <td>a</td> </tr> <tr id="line" class="line"> <th>a</th> <td>a</td> </tr> </table> </body> </html>
現象自体の原因は分からないです^^;