2009-08-30 6 views
7

Tôi đã cố gắng xác thực CSS của trang web của mình bằng Trình xác thực CSS W3C. Thật không may, reset-min.css từ khung công tác YUI đã tạo lỗi phân tích cú pháp trên chuỗi "{* font-size: 100%;".Tại sao YUI Đặt lại CSS không vượt qua Xác thực?

The validator results.

On tiếp tục điều tra tôi nhận thấy các lỗi sau trên giao diện điều khiển lỗi của Firefox:

Cảnh báo: Dự kiến ​​khai nhưng không tìm thấy '*'. Bỏ qua để tuyên bố tiếp theo.

Tôi không thể tìm thấy bất kỳ lời giải thích nào về ý nghĩa của '*', cũng như tham chiếu cho một vấn đề trong CSS đặt lại phổ biến này.

Tôi đang thiếu gì?

Trả lời

9

Đây là bản hack cho IE7 trở xuống. IE7 và thấp hơn sẽ bỏ qua dấu hoa thị và tiếp tục phân tích cú pháp CSS như bình thường. Các trình duyệt khác sẽ chỉ bỏ qua toàn bộ quy tắc. Ví dụ, vì CSS sẽ sử dụng phiên bản quy tắc cuối cùng, làm như sau sẽ khiến IE7 trở xuống sử dụng font-size là 113%, trong khi các trình duyệt khác sử dụng font-size cho 100% cho đoạn văn.

p { font-size: 100%; *font-size: 113%; } 

Có thêm một ít thông tin tại webdevout.net.

Cá nhân, tôi nghĩ rằng có thể chấp nhận được để sử dụng các hacks như vậy với mục đích làm việc xung quanh sự hỏng hóc của IE. Dường như, Yahoo! cảm thấy như vậy.

+4

Trong khi tôi không thuần khiết, tôi vẫn thích ném rác vào một điều kiện IE (quan tâm nhiều hơn đến sự xấu xí hơn hiệu lực.) –

6

Đây có thể là khả năng tương thích với IE.

Có nhiều lỗi cú pháp CSS mà một số trình duyệt (đáng chú ý là IE 6) sẽ bỏ qua và một số khác thì không. Một số tệp CSS sẽ sử dụng các lỗi để tạo quy tắc mà một trình duyệt sẽ thấy và một trình duyệt khác sẽ không.

EDIT: Để xem danh sách đầy đủ, hãy xem here. Trong trường hợp cụ thể của bạn, quy tắc đó sẽ chỉ được xem bởi IE 7 trở xuống.

+2

Đúng, chỉ cần lấy các khai báo với dấu * và đặt chúng vào tệp CSS có điều kiện của IE mà không có * và sau đó bạn có thể xác thực. –