2012-07-10 12 views
30

Làm thế nào tôi có thể làm cho bảng với 2 cột (tế bào) trông như thế này:Làm thế nào để làm cho tế bào bảng co lại theo nội dung?

  • tế bào đầu tiên là co lại theo nội dung
  • Các tế bào khác phù hợp với phần còn lại của bảng (rộng hơn cả nội dung cùng)

Ví dụ:

<table style="width: 500px;"> 
    <tr> 
     <td>foo</td> 
     <td>bar</td> 
    </tr> 
</table> 

tôi cần bảng để trông như thế này:

.___________________________________________________________________________. 
| foo | bar   <a lot of space here>        | 
|_____|_____________________________________________________________________| 
          500 px total width 

Lưu ý: Tôi không biết chiều rộng "foo" nên tôi không thể đặt "50px", "10%" hoặc một cái gì đó tương tự.

+0

đặt chiều rộng như 10px .... ví dụ: ' foo' –

+0

Vâng, nó ở ngay dưới cùng của bài viết của tôi. Tôi không biết chiều rộng của ô nên tôi không thể đặt nó theo cách thủ công. Tôi cần trình duyệt để thu nhỏ accodring nội dung ("foo" trong ví dụ của tôi, nhưng nó có thể là "foooooooooo" đó là quá dài cho 10px). –

+2

ngay cả khi bạn đặt chiều rộng 10px, ô sẽ phát triển theo nội dung. Xem fiddle ở đây: http://jsfiddle.net/7X4XT/2/ –

Trả lời

34

Bạn có thể đặt width của tế bào thứ hai để 100%

HTML:

<table> 
    <tr> 
     <td>foo</td> 
     <td class="grow">bar</td> 
    </tr> 
</table>​ 

CSS:

table { width: 500px; } 
.grow { width: 100%; }​ 

Kiểm tra this fiddle ra.

+15

Điều này chỉ hoạt động nếu 'bảng bố cục' được đặt thành' tự động' trên bảng. Đây là mặc định, nhưng thông thường đặt 'table-layout' thành' fixed', điều này sẽ làm cho giá trị 100% được thực hiện theo nghĩa đen (ô sẽ kéo dài toàn bộ bảng và tất cả các ô sẽ chồng lên nhau). – Zenexer

2

Nếu tổng kích thước của bảng là 500 pixel và sẽ không vượt qua, hãy đặt td{max-width: 500px;}; Nếu giá trị tối thiểu là 500 pixel, td {min-width: 500px;}; Nhìn này exemple.

4

thiết

td{ 
max-width:100%; 
white-space:nowrap; 
} 

nó sẽ giải quyết vấn đề ur ..

12

Tôi biết điều này đã được hỏi năm trước. OP có thể đã giải quyết nó ngay bây giờ. Nhưng điều này vẫn có thể hữu ích cho ai đó. Vì vậy, tôi đăng những gì làm việc cho tôi. Đây là những gì tôi đã làm với tôi. Tôi đặt chiều rộng thành bất kỳ thứ gì gần bằng không, để thu nhỏ nó, sau đó đặt khoảng trắng thành không gian. Giải quyết.

td { 
width:0.1%; 
white-space: nowrap; 
} 
+0

Cảm ơn. (+ 8 ký tự) – Andrew

+2

Cảm ơn! Thật thú vị, chiều rộng của '0' không có bất kỳ ảnh hưởng nào, nhưng' 0.1% 'của bạn dường như là một hack tốt đẹp để đạt được điều này. –

+0

cá nhân, tôi đã đi với chiều rộng: 1px. ý tưởng tuyệt vời Nat! – SnailCoil