2009-07-13 35 views

Trả lời

10

Ian Hixie giải thích chi tiết tại đây: The mystery of why only four properties apply to table columns. Trích dẫn có liên quan:

Màu văn bản phụ thuộc vào thuộc tính 'màu' của phần tử. Trừ khi được chỉ định, thuộc tính 'color' (về cơ bản) mặc định là 'kế thừa', có nghĩa là "lấy giá trị của phần tử gốc". Vì vậy đối với một số văn bản trong một ô, màu sắc được xác định bởi thuộc tính 'màu' của ô, được lấy từ hàng, được lấy từ bảng, được lấy từ bảng của cha, và vì vậy trên.

Còn cột thì sao? Vâng, cột không phải là một trong những tổ tiên của tế bào, vì vậy nó không bao giờ được một cái nhìn! Và đó chính là vấn đề.

+0

Bài đăng thú vị. Rất nhiều điều có ý nghĩa, nhưng nó không giải thích lý do tại sao 4 quy tắc CSS đó được cho phép, nhưng các quy tắc khác không được phép. Chắc chắn mô hình phân tích cú pháp cần phải được sửa đổi để áp dụng nền, vậy tại sao hình nền nhưng không phải là màu văn bản? – DisgruntledGoat

+2

Cột có màu nền. Nếu ô và hàng có màu nền trong suốt, bạn có thể thấy mặc dù màu cột. Đây chỉ là các phần tử phân tầng trên đầu trang của nhau. Màu phông chữ không hoạt động như thế. – Quentin

0

Có thể do mỗi hàng trong bảng không nhất thiết phải hiển thị ô cho cột của bạn (ví dụ: do colspan). Ô nào nên ô đó kế thừa kiểu của nó? Chỉ cần đoán thôi.

+0

Một dự đoán hoàn toàn sai. Xem các câu trả lời khác. – Quentin

8

Chỉ cần một đâm hoang dã trong bóng tối dựa trên sự hiểu biết hạn chế của tôi:

Tôi nghĩ rằng phong cách thông qua các yếu tố liên quan đến cột bị hạn chế bởi vì mặc dù <col><colgroup> đại diện cho các cột của các tế bào, nó không thực sự chứa chúng (họ đang thực sự chứa bởi các <tr> s). Với vấn đề này là ưu tiên và tính đặc hiệu và tầng (vì việc xếp tầng chỉ có thể được thực hiện giữa các phần tử chứa/container) - khi các quy tắc kiểu xung đột từ <tr><col> (cùng cấp trong một hệ thống phân cấp đa thừa kế) xảy ra tế bào thực sự sử dụng?

Vì sao một số thuộc tính kiểu dáng cụ thể được cho phép mặc dù: không có ý tưởng.

+1

Đối với các xung đột, trang tôi liên kết để nói rằng các ô được ưu tiên hơn các hàng, sau đó là các cột. Vì vậy, bất kỳ kiểu nào trên một cột được áp dụng trừ khi được ghi đè ở mức hàng hoặc ô. – DisgruntledGoat

3

Một từ: mơ hồ. Các ô phải là con của hàng; nó sẽ không phải là một cái bàn khác. Nhưng không có cột để đi xuống. Sử dụng colspan có nghĩa là một ô có thể ở hai cột. Thay vì cố gắng tìm ra một số cách khó hiểu, tại sao không chỉ để nhà phát triển đặt một số class trên mỗi ô thứ n?

Nếu bạn xem xét kỹ thông số mà bạn liên kết, bạn sẽ thấy các nỗ lực ở độ phân giải không rõ ràng. Thuộc tính width chỉ định mức tối thiểu; các background có một hàng ghế sau cho hàng và tế bào; và border tham chiếu đến "thuật toán giải quyết xung đột". Lý do duy nhất thậm chí có một thuật toán cho border là bởi vì nó được hiểu một cách hợp lý ai nên "giành chiến thắng" (xem thuật toán để biết chi tiết). Nhưng bạn có thể tưởng tượng cố gắng tìm ra xem color hoặc font nào nên "giành chiến thắng"?

+0

Eh, sự khác biệt giữa @colspan và @rowspan là gì? – Ms2ger

+0

@ ms2ger: với colspan, ô bao trùm nhiều hàng luôn là hậu duệ của phần tử '' cụ thể. – DisgruntledGoat

+0

@George: Câu trả lời hay nhưng một câu hỏi ... Nếu tôi đang tìm đúng nơi, "thuật toán giải quyết xung đột" chỉ đơn giản là liệt kê thứ tự ưu tiên: ô (cao nhất), hàng, nhóm hàng, cột, nhóm cột, bàn. Tại sao không thể được áp dụng cho màu sắc hoặc phông chữ? – DisgruntledGoat

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