2009-11-17 37 views
7

Tôi đã làm việc với Modernizr và đó là một tài nguyên tuyệt vời, chỉ là một dự án tuyệt vời. Tuy nhiên, cách tôi đã sử dụng nó là:Tại sao nên sử dụng Modernizr nếu trình duyệt bỏ qua CSS mà họ không hiểu?

  • Thiết kế với cơ sở (IE) CSS
  • Tăng cường với các hiệu ứng CSS3 cho các trình duyệt tiên tiến

Trừ khi tôi đã đi để thay thế hoàn toàn phong cách dựa trên hành vi, tại sao tôi không nên thêm các kiểu như bóng hộp, gradient và đường viền bán kính vào biểu định kiểu? Nếu trình duyệt không hiểu quy tắc, nó sẽ bỏ qua nó, đúng không? Và nếu JavaScript tắt, tôi không thể sử dụng nó.

Tôi có nên sử dụng phương pháp trên trong trường hợp điển hình và Modernizr cho các trường hợp nâng cao không? Hoặc có điều gì đó sai trái khi dựa vào các trình duyệt để bỏ qua những gì họ không hiểu?

Trả lời

6

Bạn có thể sử dụng (html 5) các phần tử mà một số trình duyệt không hỗ trợ. Ngoài ra, bạn có thể chỉ định kiểu dáng dự phòng.

Rất nhiều trình duyệt tạo quy tắc CSS của riêng họ cho những thứ như chuyển đổi văn bản. Với Modernizr bạn có thể viết một quy tắc và Modernizr làm cho nó xảy ra cho nhiều trình duyệt.

Tôi nghĩ rằng đó chỉ là sự tiện lợi.

+2

Đó là một điểm tuyệt vời - không cần phải lộn xộn với các phần mở rộng -webkit, -moz, và phần mở rộng ngữ pháp và phải suy nghĩ về những trình duyệt nào hỗ trợ các tính năng CSS3 nào. Tôi không biết tại sao điều đó không xảy ra với tôi. – Don

+0

Tại sao không sử dụng https://github.com/codler/jQuery-Css3-Finalize để thêm vào tiền tố nếu bạn đang sử dụng JS bằng cách nào? – JKirchartz

+0

Vấn đề với các giải pháp Javascript như thế này là khi người dùng tắt javascript. Cách tốt hơn để làm công cụ cụ thể của trình duyệt là phía máy chủ, nó nhanh hơn, có thể lưu vào bộ nhớ cache và đáng tin cậy hơn. Tôi đã làm điều này và nó hoạt động hoàn hảo. Chỉ cần viết CSS của bạn trong ví dụ Firefox và đừng lo lắng về các trình duyệt khác vì CSS sẽ được dịch tự động! – Codebeat

16

Bạn hoàn toàn đúng khi các trình duyệt cũ hơn hoàn toàn bỏ qua phần lớn những gì trong CSS3.

Do đó, tôi làm css3 của tôi trong bộ chọn cơ bản của tôi .. nhưng thường tận dụng các lớp học không tính năng của Modernizr để xử lý các trường hợp trình duyệt cũ hơn:

div.box { 
     height:50px; 
     -moz-box-shadow: 3px 3px 5px #555; 
     -webkit-box-shadow: 3px 3px 5px #555; } 

div.box span.fakeshadow { 
     display:none; 
} 

.no-boxshadow div.box span.fakeshadow { 
     display:block; background: url('fakeshadowbg.png'); 
} 

Tôi hy vọng rằng làm cho nó rõ ràng hơn .

+3

Đến từ một trong những người sáng tạo của Modernizr, tôi phải nói, vâng, điều đó làm cho nó rõ ràng hơn. Ví dụ tuyệt vời. Tất cả 3 trường hợp mà tôi lo ngại về (trình duyệt có khả năng, trình duyệt cũ hơn, trình duyệt cũ hơn có JavaScript bị tắt) đều được xử lý và trang web giảm xuống một cách duyên dáng. – Don

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