2011-11-15 39 views
56

Có thể đó là một câu trả lời rõ ràng, nhưngTại sao trình duyệt tạo tiền tố của nhà cung cấp cho thuộc tính CSS?

Tại sao trên trái đất trình duyệt sẽ quyết định tạo tiền tố nhà cung cấp riêng của họ cho border-radius và như thế nào?

Ý tôi là: Tại sao tôi phải gõ:

-moz-border-radius: 10px; 
-webkit-border-radius: 10px; 
border-radius: 10px; 

Có phải vì mỗi nền tảng tư tưởng "Chúng tôi mát mẻ, chúng tôi sẽ đưa ra một cách tốt hơn để làm góc tròn? " Dường như hoàn toàn và không thể giải thích được để gõ ba dòng cho một.

+11

"Có phải vì mỗi nền tảng đều nghĩ 'Chúng tôi rất tuyệt, chúng tôi sẽ đưa ra cách tốt hơn để làm góc tròn?'" Chính xác. – BoltClock

Trả lời

50

Đó là vì các tính năng đã được nhà cung cấp triển khai trước khi đặc tả đạt đến giai đoạn phát hành cuối cùng.

tiền tố

Các nhà cung cấp đảm bảo rằng không có cuộc đụng độ với thay đổi chức năng, vv

Nguyên, điểm của các tiền tố nhà cung cấp là cho phép các nhà sản xuất trình duyệt để bắt đầu hỗ trợ khai báo CSS thực nghiệm.

Giả sử nhóm làm việc W3C đang thảo luận về tuyên bố lưới (trong đó, ngẫu nhiên, sẽ không phải là một ý tưởng tồi). Hơn nữa, hãy nói rằng một số người tạo thông số dự thảo, nhưng những người khác không đồng ý với một số chi tiết. Như chúng ta biết, quá trình này có thể mất nhiều thời gian.

Hãy nói thêm rằng Microsoft là một thử nghiệm quyết định triển khai lưới được đề xuất. Tại thời điểm này, Microsoft không thể chắc chắn rằng đặc điểm kỹ thuật sẽ không thay đổi. Do đó, thay vì thêm lưới vào CSS của nó, nó sẽ thêm -ms-grid.

Tiền tố nhà cung cấp loại nói “đây là việc giải thích Microsoft của một đề nghị đang diễn ra.” Như vậy, nếu định nghĩa cuối cùng của lưới là khác nhau, Microsoft có thể thêm một mạng lưới tài sản CSS mới mà không phá vỡ trang mà phụ thuộc vào -ms-grid

Source.

+0

Đồng ý. Ý tưởng mới mất một thời gian để được phê chuẩn trong thế giới internet, vì vậy bạn có thể kết thúc với tất cả các loại thuộc tính thú vị. Một số ý tưởng không bao giờ được phê chuẩn, trong khi một số ý tưởng khác chỉ được thực hiện bởi một số nhà cung cấp. – user978122

+1

Cũng giống như để thêm rằng trong khi một số thông số kỹ thuật CSS được kết thúc, chúng tôi vẫn sử dụng chúng để hỗ trợ trình duyệt cũ hơn. – Th3Alchemist

10

CẬP NHẬT như năm 2016

Như bài này 3 tuổi, điều quan trọng là đề cập đến bây giờ hầu hết các nhà cung cấp hiểu rằng những tiền tố chỉ là tạo bản sao mã un-cần thiết và tình hình nơi bạn cần phải xác định 3 quy tắc css khác nhau để có được một hiệu ứng làm việc trong tất cả các trình duyệt là một không mong muốn.

Như đã đề cập trong this glossary về quan điểm của Mozilla trên Vendor Prefix trên May 3, 2016,

nhà cung cấp trình duyệt hiện nay đang cố gắng để thoát khỏi tiền tố nhà cung cấp cho thực nghiệm tính năng. Họ nhận thấy rằng các nhà phát triển web đang sử dụng chúng trên các trang web sản xuất , gây ô nhiễm không gian toàn cầu và làm cho nó trở nên khó khăn hơn cho những kẻ yếu kém để hoạt động tốt.

Ví dụ, chỉ cần một vài năm trước đây, để thiết lập một góc tròn trên một hộp bạn phải viết:

-moz-border-radius: 10px 5px; 
-webkit-border-top-left-radius: 10px; 
-webkit-border-top-right-radius: 5px; 
-webkit-border-bottom-right-radius: 10px; 
-webkit-border-bottom-left-radius: 5px; 
border-radius: 10px 5px; 

Nhưng bây giờ mà trình duyệt đã đến hỗ trợ đầy đủ tính năng này, bạn thực sự chỉ cần phiên bản tiêu chuẩn hóa:

border-radius: 10px 5px; 
Các vấn đề liên quan