Điều đó có nghĩa là gì khi Công cụ dành cho nhà phát triển của Chrome hiển thị thuộc tính tính toán chuyển sang màu xám


93

Xin lưu ý, không phải bảng Kiểu (tôi biết màu xám nghĩa là gì trong ngữ cảnh đó — không được áp dụng), mà là bảng tiếp theo, bảng Thuộc tính được tính toán.

Điều đó có nghĩa là gì khi thuộc tính Computed được hiển thị thành màu xám?

Thí dụ:

nhập mô tả hình ảnh ở đây



Câu trả lời:


62

NB: Câu trả lời này không có bằng chứng chắc chắn, nó dựa trên quan sát của tôi trong suốt thời gian qua.

Các thuộc tính được tính toán màu xám không phải là mặc định, cũng không được kế thừa. Điều này chỉ xảy ra trên các thuộc tính không được xác định cho phần tử, nhưng được tính toán từ phần tử con hoặc phần tử gốc của nó dựa trên kết xuất bố cục thời gian chạy.

Lấy trang đơn giản này làm ví dụ, displaylà trang mặc định và font-sizeđược kế thừa:

<style>
  div { font-size: 13px; }
</style>
<div>
  <p>asdf</p>
</div>

nhập mô tả hình ảnh ở đây

Trong ví dụ cụ thể này, heightđược tính từ <p>nút văn bản con của (cỡ chữ cộng với chiều cao dòng), widthđược tính từ <div>chiều rộng của nút cha , cũng được tính từ nút cha của nó <body>.


CHỈNH SỬA: Tôi đã nghĩ lại, đây là câu trả lời dựa trên ý kiến của tôi . Tôi thực sự nên đi và xem qua mã nguồn Chromium sau: D

Bằng cách mở rộng các mũi tên đó, bạn có thể thấy quy tắc thực tế nào được áp dụng cho phần tử, trong số tất cả những quy tắc được xác định dựa trên nó (trực tiếp hoặc kế thừa, bởi nhà phát triển hoặc trình duyệt):

nhập mô tả hình ảnh ở đây

Tại đây, bạn có thể truy tìm mọi định nghĩa, thậm chí bao gồm các quy tắc tích hợp sẵn của trình duyệt và kiểm tra bằng cơ chế xếp tầng CSS (ghi đè).

Vì vậy, đối với những phần tử không có định nghĩa CSS (không được xác định trực tiếp, không được kế thừa, không được tích hợp sẵn trong trình duyệt), bạn không có bất kỳ nguồn nào để theo dõi. Và các giá trị thuộc tính hoàn toàn được tính toán thời gian chạy.

Nếu bạn chọn Hiển thị tất cả , nhiều thuộc tính màu xám hơn sẽ được hiển thị. Chúng cũng không được định nghĩa ở bất cứ đâu. Nhưng không giống như các ảnh chụp màn hình trước, chúng không được tính toán thời gian chạy - chúng là giá trị mặc định của thông số CSS.

nhập mô tả hình ảnh ở đây


2
Điều đó có lý. Một chi tiết khác: không thể nhấp vào các thuộc tính màu xám, theo cách những người khác có thể, để hiển thị nguồn gốc của các giá trị của chúng trong một khai báo cụ thể.
AmbroseChapel

@AmbroseChapel Tôi đã nghĩ lại và cập nhật câu trả lời của mình. Tôi thực sự nên đi và đọc mã nguồn. Câu hỏi hay.
Leo

Chắc chắn có ý nghĩa rằng các thuộc tính màu xám là run-time calculateddo các thuộc tính màu xám thường là 'chiều cao' và 'chiều rộng', nếu bạn nghĩ về nó, là các giá trị phụ thuộc động vào phần tử con của một phần tử (ví dụ: số lượng văn bản và kích thước phông chữ của văn bản được chứa trong phần tử hoặc chiều rộng của phần tử gốc khi phần tử có chiều rộng: 100%)
Niko Bellic

4
Một tính năng CDT tuyệt vời cho điều này sẽ là: để xem các giá trị được tính toán như thế nào, có nghĩa là: widthví dụ như các phần tử nào thêm vào kiểu.
Legends
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.