1

いくつかの列を含むテーブルがあり、2 番目の列には多くのテキストが含まれているため、他の列が右に移動しすぎています。テーブルをそのままにしておきたいのですが、列にテキストが多すぎて切り取られないようにしたいです。table-layout:fixedまた、 and の使用を避けようとしていることにも言及する必要がありposition:absoluteます。これが私のコードです:

HTML :

<table id="messages_list" class="listing rows clickable">
  <tbody>
    <tr>
      <th class="select"><input id="all" type="checkbox"></th>
      <th class="from">To</th>
      <th class="subject">Subject</th>
      <th class="date">Date</th>
    </tr>
    <tr class="item even " data-thread-id="16">
      <td class="first"><input class="checkbox" type="checkbox" name="id:16"></td>
      <td>LastName, FirstName, LastName2, FirstName2, LastName3, FirstName3, LastName4, FirstName4</td>
      <td>Hello</td>
      <td class="last">07/16/2012 12:26</td>
    </tr>
  </tbody>
</table>

CSS :

table.listing {
  border: 0;
  border-spacing: 0;
  width: 100%;
  margin-bottom: 1em;
  overflow: hidden;
  white-space: nowrap;
}
table.listing th {
  padding: 4px 8px;
  font-size: 12px;
  background: #002A80;
  text-decoration: none !important;
  color: white !important;
  font-weight: bold;
  text-align: left;
}
th.select { 
  width: 10px; 
}
th.from { /* This is the column giving me problems */
  width: 20%;
  overflow: hidden;
}
th.date {
  width: 1%;
}

実際の例: Tinkerbin .

4

2 に答える 2

0

実際には、正しいセルにオーバーフローを適用していません。これth.fromはヘッダー セルのみであり、幅を設定するにはこれで十分ですが、そのoverflowプロパティはその列の他のセルには適用されません。

overflow: hiddenallに設定するかtd、2 番目の項目タイプの疑似セレクターを使用するか、最も簡単な方法で from クラスを に配置し、tdスタイルtd.fromth.from同じにする必要があります。

またtable-layout: fixed;、テーブルなどにセットする必要があるようです。テーブルはコンテンツに合わせてサイズ変更するのが好きで、ラップしないように明示的に指示したコンテンツに合わせてテーブル全体のサイズが変更されているようです。オーバーフローを非表示にするのではなく、テーブルを拡張することを好む理由はわかりませんが、それはあなたのためのテーブルです。

table-layout プロパティは、指定した寸法に基づいてサイズをレンダリングするように指示し、コンテンツに基づいて物事を作成する大きさを計算しようとしません。これは、日付列の 1% 幅のようなものは、その列を切り捨てる可能性が高いことを意味します (非常に幅の広い画面を除く)。

オーバーフローを実行して適切なサイズ変更を維持しながら、ラッピングをオフにする簡単な方法があるかどうかはわかりません。固定レイアウトのテーブルが唯一の選択肢かもしれません。

于 2012-07-23T16:36:22.930 に答える
0

td長いテキストを含むに次を追加します。

style="word-break:break-word"
于 2012-07-23T16:29:01.570 に答える