มีใครบอกฉันได้ไหมว่า CSS ต่อไปนี้ถูกต้อง?
.class {
background-color:none;
}
background:none;ซึ่งถูกต้องและกำหนดสีพื้นหลังให้โปร่งใส
มีใครบอกฉันได้ไหมว่า CSS ต่อไปนี้ถูกต้อง?
.class {
background-color:none;
}
background:none;ซึ่งถูกต้องและกำหนดสีพื้นหลังให้โปร่งใส
คำตอบ:
คุณอาจต้องการtransparentเนื่องจากnoneไม่ใช่background-colorค่าที่ถูกต้อง
CSS 2.1 สเปคกล่าวต่อไปนี้สำหรับbackground-colorคุณสมบัติ:
Value: <color> | transparent | inherit
<color>สามารถเป็นได้ทั้งคำหลักหรือการแสดงตัวเลขของสี คำหลักที่ถูกต้องcolorคือ:
น้ำ, สีดำ, เปลี่ยนเป็นสีน้ำเงิน, สีแดงม่วง, เทา, เขียว, มะนาว, แดง, กองทัพเรือ, มะกอก, ออเรนจ์, สีม่วง, แดง, เงิน, นกเป็ดน้ำ, ขาว, เหลือง
transparentและinheritเป็นคำหลักที่ถูกต้องในสิทธิของตนเอง แต่noneไม่ใช่
transparentว่าเป็นสิ่งที่คุณใช้ถ้าคุณต้องการที่จะเปิดสีพื้นหลัง "ปิด"
color font-colorทำให้รู้สึกมากเมื่อใดก็ตามที่เคยคุณสมบัติอื่น ๆ ที่มีตัวอักษรfontในด้านหน้าของมัน ...
ไม่มีใช้แทนtransparent noneดูตัวอย่างการทำงานที่นี่ในตัวอย่างนี้ถ้าคุณจะเปลี่ยนtransparentไปnoneมันจะไม่ทำงาน
ใช้เช่น .class { background-color:transparent; }
คำตอบคือไม่
.class {
background-color: none; /* do not do this */
}
.class {
background-color: transparent;
}
background-color: transparentทำสิ่งเดียวกันกับที่คุณต้องการให้background-color: noneสำเร็จ
.class {
background-color:none;
}
นี่ไม่ใช่คุณสมบัติที่ถูกต้อง เครื่องมือตรวจสอบ W3C จะแสดงข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาดของค่า: background-color none ไม่ใช่ค่า background-color: none
transparentอาจถูกเลือกให้เป็นคำที่ดีกว่าแทน0หรือnoneค่าในระหว่างการพัฒนาข้อกำหนดของ CSS
CSS ระดับ 3 ระบุunsetค่าคุณสมบัติ จากMDN :
คำหลัก CSS ที่ไม่ได้ตั้งค่าคือการรวมกันของคำหลักเริ่มต้นและสืบทอด เช่นเดียวกับคำสำคัญอื่น ๆ ของ CSS กว้าง ๆ มันสามารถใช้กับคุณสมบัติ CSS ใด ๆ รวมถึง CSS ย่อทั้งหมด คีย์เวิร์ดนี้รีเซ็ตคุณสมบัติเป็นค่าที่สืบทอดถ้ามันสืบทอดจากพาเรนต์หรือเป็นค่าเริ่มต้นหากไม่ใช่ กล่าวอีกนัยหนึ่งมันจะทำงานเหมือนคำหลักที่สืบทอดในกรณีแรกและเหมือนคำหลักเริ่มต้นในกรณีที่สอง
น่าเสียดายที่ค่านี้ไม่ได้รับการสนับสนุนในทุกเบราว์เซอร์รวมถึง IE, Safari และ Opera ฉันแนะนำให้ใช้transparentในขณะนี้
เขียนสิ่งนี้:
.class {
background-color:transparent;
}
ดังนั้นฉันต้องการอธิบายสถานการณ์ที่ฉันต้องใช้ประโยชน์จากโซลูชันนี้ โดยพื้นฐานแล้วฉันต้องการยกเลิกการตั้งค่าคุณสมบัติสีพื้นหลังโดย CSS อื่น ผลลัพธ์สุดท้ายที่คาดหวังคือทำให้ดูราวกับว่า CSS ดั้งเดิมไม่เคยใช้คุณสมบัติสีพื้นหลัง การตั้งค่าbackground-color:transparent;ทำให้มีประสิทธิภาพ