มีใครบอกฉันได้ไหมว่า 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;
ทำให้มีประสิทธิภาพ