テーブル内の列の1つに、空白なしの長いテキストを含めることができます。たとえば、幅を150ピクセルに制限するにはどうすればよいですか?常に150pxにしたくない(空の場合は幅を狭くする)が、長いテキストがある場合は150pxで制限し、テキストを折り返すようにしたい。
以下にテスト例を示します。 http://jsfiddle.net/Kh378/ (3列目を制限しましょう)。
前もって感謝します。
更新:
このスタイルの設定:
Word-wrap: break-Word;
max-width: 150px;
iE8(別のコンピューターでテスト済み)では動作せず、IEのどのバージョンでも動作しないと思います。
テーブルのtd
およびth
タグに追加したもの:
Word-wrap: break-Word;
max-width: 150px;
すべてのブラウザで完全に互換性があるわけではありませんが、最初からです。
代わりに幅を使用する必要があります。
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th style="width: 150px;"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
ただし、<thead>
セクション。
以下を使用して列のスタイルを設定できるはずです。
max-width: 150px;
Word-wrap: break-Word;
ご了承ください Word-wrap
は、IE 5.5 +、Firefox 3.5+、およびWebKitブラウザー(ChromeおよびSafari)でサポートされています。
Chromeでいくつかの実験を行った後、私は次のようになりました。
<th>
があり、「幅」または「最大幅」が設定されている場合<td>
には「max-width」と「Word-wrap:break-Word;」が設定されている必要があります<th>
で「幅」を使用すると、その値が使用されます。 <th>
で「max-width」を使用する場合、代わりに<td>
の「max-width」値が使用されます。
したがって、この機能は非常に複雑です。そして、ヘッダーや「ブレークワード」を必要とする長い文字列のないテーブルも勉強しませんでした。
非常に簡単です
これらのような属性を追加できます
最大幅
最大高さ
属性としてhtmlで、またはスタイルとしてCSSで設定できます
最大幅をシミュレートするオプションがあります:
simulateMaxWidth: function() {
this.$el.find('th').css('width', ''); // clear all the width values for every header cell
this.$el.find('th').each(function(ind, th) {
var el = $(th);
var maxWidth = el.attr('max-width');
if (maxWidth && el.width() > maxWidth) {
el.css('width', maxWidth + 'px');
}
});
}
この関数は、$(window).on( 'resize'、...)で複数回呼び出すことができます
this.$el
親要素を表し、私の場合はマリオネットを持っています
max-widthを持つべきth番目の要素には、次のようなmax-width属性があるはずです:
<th max-width="120">
1)必要に応じて、<th>
の各列の幅を指定します。
2)<td>
の<tr>
の各<table>
にワードラップを追加します。
Word-wrap: break-Word;