0

私は通常、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アプローチはこの奇妙な振る舞いを引き起こしません。

何かご意見は?


DeviceExtendedPropertiesクラスから、およびDeviceManufacturerプロパティDeviceName

4

2 に答える 2

1

table-layout: fixed;テーブル上ではこれが正確に行われます。列がその内容に合わせて拡張されることはなく、テーブル自体に幅を指定すると、余分なスペースが均等に分割されます。セルの内容はまったく機能しません。

于 2013-01-17T18:54:18.447 に答える
1

これの幅を修正<table>すると、テーブルが使用可能なサイズを取り、レイアウトが崩れることがなくなります。

于 2013-01-17T18:05:41.067 に答える