Có một lý do hợp lệ để các trình duyệt tiền tố các tính năng CSS mới, thay vì cho phép các quản trị web sử dụng phiên bản không có tiền tố?
Ví dụ: mã mẫu cho gradient nền trông như sau:
#arbitrary-stops {
/* fallback DIY*/
/* Safari 4-5, Chrome 1-9 */
background: -webkit-gradient(linear, left top, right top, from(#2F2727), color-stop(0.05, #1a82f7), color-stop(0.5, #2F2727), color-stop(0.95, #1a82f7), to(#2F2727));
/* Safari 5.1+, Chrome 10+ */
background: -webkit-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* Firefox 3.6+ */
background: -moz-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* IE 10 */
background: -ms-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* Opera 11.10+ */
background: -o-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
}
Điểm nào trong việc buộc các quản trị web sao chép-dán cùng một mã bốn lần để có cùng kết quả?
Lưu ý: một trong những lý do thường được trích dẫn là các kiểu tiền tố được dự định là tạm thời trong khi trình duyệt không triển khai chính xác thông số kỹ thuật hoặc thông số kỹ thuật không dứt khoát .
IMO, lý do này là vô nghĩa:
- Nếu công cụ trình duyệt không triển khai thông số kỹ thuật một cách chính xác, trình duyệt sẽ không tuân thủ, bất kể nó không thực hiện nó ở dạng không có tiền tố hay nó không thực hiện ở dạng tiền tố.
- Nếu thông số kỹ thuật không dứt khoát, có thể có vấn đề khi có các triển khai trước đó có cùng tên. Ví dụ: nếu CSS2 có
linear-gradient
, nhưng CSS3 được dự định mở rộnglinear-gradient
với các tính năng bổ sung, sẽ rất thông minh khi đặt tiền tố tạm thời, bản nháp, triển khai bằng cách-css3-<style>
phân biệt giữa CSS2 đang hoạt động và CSS3 thử nghiệm. Trong thực tế, CSS2 không cólinear-gradient
hoặc mới lạ CSS3 khác.
Tôi cũng sẽ hiểu nếu các trình duyệt khác nhau có các định dạng triển khai khác nhau : ví dụ: giả sử Firefox yêu cầu, đối với bóng văn bản <weight-of-shadow distance-x distance-y color>
, trong khi Chrome yêu cầu <distance-x distance-y weight-of-shadow color>
. Nhưng thực ra, đây không phải là trường hợp; ít nhất là tất cả các tính năng mới của CSS3 tôi đã sử dụng cho đến nay có cùng định dạng.
If the browser engine does not implement the spec correctly, the browser will not be compliant
- Chào mừng bạn đến với thế giới thực. ™