มีเหตุผลที่ถูกต้องหรือไม่ที่เบราว์เซอร์จะนำหน้าคุณลักษณะ CSS ใหม่แทนที่จะปล่อยให้เว็บมาสเตอร์ใช้เวอร์ชันที่ไม่ใช่คำนำหน้า?
ตัวอย่างเช่นโค้ดตัวอย่างสำหรับการไล่สีพื้นหลังมีลักษณะดังนี้:
#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);
}
จุดประสงค์ในการบังคับให้เว็บมาสเตอร์คัดลอกวางรหัสเดียวกันสี่ครั้งเพื่อให้ได้ผลลัพธ์เดียวกันคืออะไร
หมายเหตุ: เหตุผลหนึ่งที่มักจะอ้างว่าเป็นรูปแบบที่นำหน้ามีความตั้งใจที่จะเป็นในขณะที่ชั่วคราวทั้งเบราว์เซอร์ไม่ใช้สเปคอย่างถูกต้องหรือสเปคไม่ได้เป็นที่ชัดเจน
IMO เหตุผลนี้เป็นเรื่องไร้สาระ:
- หากเบราว์เซอร์เอ็นจินไม่ได้ใช้สเป็คอย่างถูกต้องเบราว์เซอร์จะไม่เข้ากันไม่ว่าจะใช้ในรูปแบบที่ไม่มีคำนำหน้าหรือไม่ใช้ในรูปแบบที่มีคำนำหน้า
- หากสเป็คไม่ชัดเจนมันอาจสำคัญเมื่อมีการใช้งานก่อนหน้านี้ที่มีชื่อเดียวกัน ตัวอย่างเช่นถ้ามี CSS2
linear-gradient
แต่ CSS3 มีวัตถุประสงค์เพื่อขยายlinear-gradient
พร้อมกับคุณสมบัติเพิ่มเติมมันจะเป็นการฉลาดที่จะนำหน้าร่างใหม่การนำไปปฏิบัติชั่วคราวโดย-css3-<style>
แยกความแตกต่างระหว่าง CSS2 ที่ใช้งานกับหนึ่งและ CSS3 รุ่นทดลอง ในทางปฏิบัติ CSS2 ไม่มีlinear-gradient
หรือคุณสมบัติใหม่ ๆ ของ CSS3
ฉันยังอยากจะเข้าใจหากเบราว์เซอร์ที่แตกต่างกันมีรูปแบบการดำเนินงานที่แตกต่างกัน : ยกตัวอย่างเช่นสมมติว่า Firefox จำเป็นสำหรับเงาข้อความ<weight-of-shadow distance-x distance-y color>
ในขณะที่ Chrome <distance-x distance-y weight-of-shadow color>
ต้อง แต่จริงๆแล้วนี่ไม่ใช่กรณี; อย่างน้อยคุณสมบัติใหม่ทั้งหมดของ CSS3 ที่ฉันเคยใช้มีรูปแบบเดียวกัน
If the browser engine does not implement the spec correctly, the browser will not be compliant
- ยินดีต้อนรับสู่โลกแห่งความเป็นจริง™