2012-01-17 34 views
7

Khi tôi chạy CSS của tôi thông qua validator của W3C, bất cứ lúc nào tôi sử dụng box-shadow bất động sản, tôi nhận được một lỗi như thế này:Thuộc tính hộp bóng CSS3 không xác thực?

0 không phải là một giá trị hộp-shadow: 0 0 10px # 000

Nó dường như dừng lại ở bất cứ giá trị đầu tiên là, kể từ khi thay đổi thứ tự của các giá trị này sẽ thay đổi lỗi cho phù hợp:

# 000 không phải là một giá trị hộp bóng: # 000 0 0 10px

Tôi đang xác thực hợp lệ với tiểu sử được đặt thành CSS3, vì vậy không phải là trường hợp tôi quên thay đổi cài đặt hồ sơ mặc định từ CSS2 (nơi không có thuộc tính box-shadow).

Tại sao nó không nghĩ rằng bất kỳ giá trị nào tôi đang sử dụng là chính xác? Bóng sẽ hiển thị hoàn toàn tốt trong Firefox và bất kỳ trình duyệt nào khác hỗ trợ thuộc tính box-shadow không có tiền tố.

Trả lời

11

Đó là a known validator bug. Rõ ràng họ quên rằng các giá trị đơn vị được cho phép (đặc biệt là các giá trị không đơn vị số không). Không có gì sai với CSS của bạn; các giá trị bạn đang sử dụng là chính xác.

Nếu bạn kén chọn và bạn không thể đưa lên với các lỗi làm hoen bẩn nếu không sẽ-đã-được xác nhận thành công của bạn, bạn chỉ có thể thêm các đơn vị để không giá trị của bạn:

box-shadow: 0px 0px 10px #000; 

Nhưng bất cứ khi nào tôi chạy vào các tình huống như thế này, tôi thường không bận tâm, biết rằng đó là một lỗi trình duyệt tính hợp lệ vô hại và không có gì sai với CSS của tôi.

Lưu ý rằng vì bản cập nhật này lỗi đã được sửa từ August 30, 2012.

+0

Wow, bạn nói đúng! Với các đơn vị trên tất cả các giá trị, nó sẽ xác nhận. Đây thực sự là một lỗi khá rõ ràng vì nó có nghĩa là các bóng sử dụng màu RGBa sẽ không bao giờ xác nhận, vì chúng không có các đơn vị. – daGUY

+0

@daGUY: Các màu 'rgba()' và 'hsla()' kích hoạt các lỗi phân tích cú pháp với trình xác nhận hợp lệ, nhưng có vẻ như các giá trị đơn vị không liên quan gì đến nó vì 'rgb()' và 'hsl()' màu sắc hoạt động tốt. Xem [báo cáo lỗi này] (https://www.w3.org/Bugs/Public/show_bug.cgi?id=11880). – BoltClock

+0

Vui đủ, khi sử dụng các đơn vị như '0px 2px 2px # ccc' trình xác thực sẽ đơn giản hóa câu lệnh thành' 0 2px 2px # ccc' được thêm vào báo cáo xác thực :) –

3

Thay đổi thành 0px 0px 10px #000 và nó sẽ xác thực. Đó có thể là do phiên bản beta của trình xác thực.

2

Trình xác thực có nhiều lỗi. Giai đoạn beta mới và của nó.

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