Có kết quả tìm kiếm được lưu trữ trong một bảng như hình dưới đây:Ẩn một <tr>, trong khi vẫn liên quan đến nó trong các tính toán chiều rộng
<table>
<tbody>
<tr>
<td>Column One</td>
<td>Column Two</td>
<td>Column Three</td>
</tr>
</tbody>
</table>
Bảng thực tế chứa dữ liệu nhiều hơn nữa (cả trong các cột và các hàng) và là chiều rộng chất lỏng. Vì dữ liệu là biến, tôi muốn các table-layout
giữ nguyên auto
, vì nó xử lý tự động hóa (sẽ tốn kém và phức tạp khi thực hiện trong javascript để nói 1.000 hàng).
Bảng này cũng được lọc bởi tiện ích con tìm kiếm trực tiếp ẩn các hàng không khớp với truy vấn bằng cách thêm display: none;
. Tuy nhiên, tôi đã thấy rằng điều này thường làm cho độ rộng cột được tính toán lại (thường gây ra một số bước nhảy chói tai trong chiều rộng cột). Điều này có ý nghĩa, cho rằng các hàng có khả năng chỉ bao gồm các phép tính nếu chúng có display: table-row;
. Nhưng đây không phải là hành vi của tôi.
Có thể ẩn <tr>
từ chế độ xem, nhưng vẫn được bao gồm trong các tính toán chiều rộng cột được thực hiện (ví dụ: kích thước lại) bởi trình duyệt trên bảng có table-layout: auto;
không?
Tôi đã thử đặt height: 0;
(và max-height: 0;
), nhưng đã học được từ other SO questions rằng điều này không làm việc vì display: table-cell;
. Tương tự, cài đặt line-height: 0;
không thành công, nhưng tôi đã nhận ra rằng vì một vài cột của tôi có chặn nội dung. Tôi cũng đã xem xét việc thiết lập độ rộng trên bảng <td>
s, nhưng sau đó điều này làm cho chất lỏng trong bảng (tôi sẽ phải loại bỏ chiều rộng rõ ràng về thay đổi kích thước, có thể gây ra nhảy rộng và sẽ không hoạt động trừ khi tất cả các hàng được hiển thị và được bao gồm trong tính toán kích thước bảng của trình duyệt).
Chỉnh sửa: Để làm rõ, bằng cách ẩn từ chế độ xem, tôi ngụ ý ẩn theo nghĩa là display: none;
, chứ không phải visibility: hidden;
. Cái sau sẽ hoạt động nếu phần tử không giữ nguyên chiều cao ban đầu của nó khi bị ẩn, nhưng tiếc là đây không phải là trường hợp.
Lưu ý: Tôi biết rằng ngay từ cái nhìn đầu tiên, đây dường như là một câu hỏi khá hẹp, nhưng tôi tin rằng đây có thể là trường hợp sử dụng phổ biến. Như vậy, tôi đã in đậm phần áp dụng nhất (đọc: quan trọng nhất) của câu hỏi. Phần còn lại (hơi cụ thể đối với tôi) là giải thích nhiều hơn bất cứ điều gì khác.
thường tạm thời cho thấy nó trước khi tính toán và sau đó ẩn nó một lần nữa một khi bạn đã thực hiện xong nên làm các trick, vì các đối tượng ẩn không nhận được bất kỳ giá trị CSS nào. Vì vậy, đầu tiên đặt màn hình của nó để chặn (hoặc nội tuyến tế bào, hoặc bất cứ điều gì), sau đó trở lại để hiển thị không có thường trick cho tôi. Nếu tính toán của bạn nhanh, không có flash. – somethinghere
Thử 'max-height'. Chỉ cần đoán thôi. –
@torazaburo Đó là một ý tưởng thú vị. Thật không may, nó bị cùng một vấn đề mà thiết lập chiều cao của một hàng trong bảng có. Tôi đã thử nó với sự kết hợp của 'height',' visibility: hidden; ', và' overflow: hidden; 'không có kết quả. –