2

同じクラスと構造を持つ 2 つのテーブルがあります。CSS を使用してクラスのスタイルを設定すると、希望どおりに表示されます。

問題は、これらのテーブルの 1 つが最初は非表示であり、後で JavaScript を使用して表示された場合、与えられたアウトラインがテキストで囲まれている場所に合わせて縮小されることです。

これは、テーブルを表示するために使用されるコードです。

function setTable(){    
   if(document.getElementById("forfeitTable2").style.display=="none"){
      document.getElementById("forfeitTable2").style.display="block";
   }
   else if(document.getElementById("forfeitTable2").style.display=="block"){
      document.getElementById("forfeitTable2").style.display="none";
   }
}

このデモは、おそらく私よりもうまく説明できます。

http://jsfiddle.net/DelightedD0D/6Ajyn/1/

  1. なぜこれが起こるのですか?
  2. それを止めるにはどうすればよいですか?
4

5 に答える 5

4

使用する

document.getElementById("forfeitTable2").style.display="table";

それ以外の

document.getElementById("forfeitTable2").style.display="block";

JSフィドル:-http://jsfiddle.net/6Ajyn/3/

于 2013-02-21T06:02:34.620 に答える
2

ブロックの代わりにテーブルにディスプレイを設定してみてください!

于 2013-02-21T06:00:22.273 に答える
2

表示を none に設定した場合、width:100% は幅を測定する方法を知りません。

これを試して:

if(document.getElementById("forfeitTable2").style.display=="none"){
document.getElementById("forfeitTable2").style.display="block";
document.getElementById("forfeitTable2").style.width="100%";
}
else if(document.getElementById("forfeitTable2").style.display=="block"){
document.getElementById("forfeitTable2").style.display="none";
}
}
于 2013-02-21T06:06:50.827 に答える
1

次のように設定するdisplay代わりに、css プロパティを空にするだけです。blocktable

if(document.getElementById("forfeitTable2").style.display=="none"){
    document.getElementById("forfeitTable2").style.display="";
}

else if(document.getElementById("forfeitTable2").style.display==""){
    document.getElementById("forfeitTable2").style.display="none";
}

デモ

于 2013-02-21T06:09:33.957 に答える
0

プロパティの可能な値の完全なリストを表示するには、スタイル表示プロパティdisplayを参照 してください

テーブルを非表示にして再度表示する場合は、

document.getElementById("tableId").style.display="table";

表の行を非表示にして再度表示するときに使用します

document.getElementById("rowId").style.display="table-row";
于 2015-05-25T14:31:18.687 に答える