私は通常、CSSを介して固定列幅を設定し、完璧な結果をもたらしました。
#tableID thead tr th:nth-child(1){width: 75px;}
#tableID thead tr th:nth-child(2){width: 75px;}
/* etc… */
しかし今、私は実行時まで希望の列幅がわからない状況にあります。これは、列幅を動的に設定するために使用しているコードからの抜粋です。
var tr=$("<tr>");
var colArr=Home.ColDefs[this.statBatchType].colArr;
for(var i=0;i<colArr.length;i++){
var col=colArr[i];
tr.append(
$("<th>")
.html(col.title)
.css("width",col.width)
);
}
this.jqTHead.append(tr);
申し訳ありませんが、このコードは少し文脈から外れていますが、肝心なのは、要素で表される列を<th>
テーブルヘッダーに追加し、それぞれの幅を設定しているということです。
ただし、実際に発生するのは、Firefoxが列幅を最小として扱い、ユーザーがブラウザウィンドウを展開すると自動的に列幅を拡大することです。私のJavaScriptコードが各列の幅を75pxに設定している場合を考えてみましょう。Firefoxは、各列の幅が少なくとも75ピクセルであることを確認しますが、ユーザーがブラウザーを最大化(または拡大)すると、十分なスペースがあれば、各列が自動的に拡大されます。
JavaScriptコードは、CSSで行っていたものと機能的に同等であるように見えるので、これは私には奇妙です。しかし、CSSアプローチはこの奇妙な振る舞いを引き起こしません。
何かご意見は?