2011-08-25 32 views
12

Tôi có bảng động mà tôi tạo sau khi nhận được một số đầu vào từ người dùng để trình bày một số dữ liệu dạng bảng. Tôi cần phải biết nếu có đi để chỉ định một chiều cao cố định cho các tế bào ngay cả khi một số người trong số họ có một số nội dung/văn bản. Tôi muốn tất cả các ô có chiều cao 30px bất kể chúng có nội dung hay chúng trống.Chiều cao cố định của ô bảng bất kể nội dung của ô

Đây là CSS Tôi có:

table { 
    width: 90%; 
    height:100%; 

} 
    table th, table td { 
     border: 1px solid gray; 
     height:30px !important; 
     padding: 9px !important; 
     width: 16%; 
    } 

Bảng này được tạo ra bởi mã này:

foreach ($this->rows as $i => $row) { 
      $tbody_tr = NHtml::el ('tr class="data-row-' . $i . '"'); 
      foreach ($this->fields as $field) { 
       $tbody_tr->add(NHtml::el ('td')->class($field['name'])->setHtml(@$row[$field['name']])); 
      } 

Nhưng khi tôi có một tế bào có một số văn bản, chiều cao tế bào mở rộng anyway. Bất kỳ ý tưởng?

+0

Có nên nói '... để chỉ định _WIDTH_ ..' cố định hay phải là '_HEIGHT_'? –

+0

Đã sửa, xin lỗi – digitup

Trả lời

23

tế bào Bảng không tràn, do đó bạn cần phải quấn nội dung trong một div sử dụng tràn

Dưới đây là một ví dụ: http://jsfiddle.net/avVQm/

HTML:

<table> 
<tr> 
    <td> 
    <div> 
    gf asfdg fsagfag fdsa gfdsg fdsg fds g fdg 
    </div> 
    </td> 
</tr> 
</table> 

CSS:

table { 
    width: 30px; 
    border: 1px solid black; 
} 

table td > div { 
    overflow: hidden; 
    height: 15px; 
} 

PHP của bạn:

foreach ((array)$this->fields as $field) { 
$wrapperdiv = NHtml::el ('div'); 
$tbody_tr->add($wrapperdiv); 
$wrapperdiv->add(NHtml::el ('td')->class($field['name'])->setHtml(@$row[$field['name']])); 
} 

Lưu ý rằng tôi không biết chính xác cú pháp cho khung mà bạn sử dụng, nhưng tôi đoán php của bạn sẽ trông giống như thế này.

+0

: Cảm ơn bạn, Các hàng trong bảng được tạo bởi mã PHP được thêm vào. Vui lòng kiểm tra mã ở trên. Tôi có thể thêm div vào đâu? – digitup

+0

Vui lòng xem cập nhật của tôi. Tôi không biết cú pháp chính xác của khuôn khổ php của bạn nhưng tôi nghĩ rằng tôi đã thực hiện một dự đoán công bằng :) – Bazzz

+0

Cảm ơn bạn, tôi sẽ kiểm tra cách tiếp cận này. – digitup

-3

Hãy thử thêm "overflow: hidden" vào css cho th/td.

+0

Cảm ơn bạn Alexander, tôi đã thử rằng đã không có may mắn. – digitup

+0

Nhìn ở đây là một câu hỏi tương tự với giải pháp: http://stackoverflow.com/questions/1554928/how-to-hide-table-row-overflow –

+0

cảm ơn bạn nhưng vẫn còn khi tôi thêm tràn và làm theo các giải pháp đã đề cập đến bảng chiều rộng mở rộng đến 100% thay vì 90% để thích ứng với không gian trắng: nowrap. – digitup

Các vấn đề liên quan