ใน CSS2.1 องค์ประกอบสามารถมีองค์ประกอบหลอกประเภทใดประเภทหนึ่งได้มากที่สุดในเวลาใดก็ได้ (ซึ่งหมายความว่าองค์ประกอบสามารถมีได้ทั้ง a :before
และ:after
องค์ประกอบหลอก - แต่ต้องมีมากกว่าหนึ่งชนิดไม่ได้)
ด้วยเหตุนี้เมื่อคุณมี:before
กฎหลายข้อที่ตรงกับองค์ประกอบเดียวกันกฎทั้งหมดจะเรียงซ้อนและนำไปใช้กับ:before
องค์ประกอบหลอกเดียวเช่นเดียวกับองค์ประกอบปกติ ในตัวอย่างของคุณผลลัพธ์สุดท้ายจะเป็นดังนี้:
.circle.now:before {
content: "Now";
font-size: 19px;
color: black;
}
อย่างที่คุณเห็นมีเพียงการcontent
ประกาศที่มีลำดับความสำคัญสูงสุด (ตามที่กล่าวไว้การประกาศที่มาสุดท้าย) จะมีผล - การประกาศที่เหลือจะถูกละทิ้งเช่นเดียวกับในกรณีของคุณสมบัติ CSS อื่น ๆ
ลักษณะการทำงานนี้อธิบายไว้ในส่วน Selectors ของ CSS2.1 :
องค์ประกอบหลอกจะทำงานเหมือนกับองค์ประกอบจริงใน CSS โดยมีข้อยกเว้นที่อธิบายไว้ด้านล่างและที่อื่น ๆ
นี่หมายความว่าตัวเลือกที่มีองค์ประกอบหลอกทำงานเหมือนกับตัวเลือกสำหรับองค์ประกอบปกติ นอกจากนี้ยังหมายความว่าน้ำตกควรทำงานในลักษณะเดียวกัน น่าแปลกที่ CSS2.1 ดูเหมือนจะเป็นการอ้างอิงเท่านั้น ทั้งcss3-selectorsหรือcss3-cascade ไม่ได้กล่าวถึงสิ่งนี้เลยและยังคงต้องรอดูว่าจะมีการชี้แจงในข้อกำหนดในอนาคตหรือไม่
หากองค์ประกอบสามารถจับคู่ตัวเลือกมากกว่าหนึ่งตัวกับองค์ประกอบหลอกเดียวกันและคุณต้องการให้ทั้งหมดนำไปใช้คุณจะต้องสร้างกฎ CSS เพิ่มเติมด้วยตัวเลือกแบบรวมเพื่อให้คุณสามารถระบุสิ่งที่เบราว์เซอร์ควรทำในสิ่งเหล่านั้น กรณี ฉันไม่สามารถให้ตัวอย่างที่สมบูรณ์รวมถึงcontent
คุณสมบัติที่นี่ได้เนื่องจากยังไม่ชัดเจนเช่นสัญลักษณ์หรือข้อความควรมาก่อน แต่ตัวเลือกที่คุณต้องการสำหรับกฎรวมนี้เป็นอย่างใดอย่างหนึ่ง.circle.now:before
หรือ.now.circle:before
- ตัวเลือกใดก็ตามที่คุณเลือกเป็นความชอบส่วนบุคคลเนื่องจากตัวเลือกทั้งสองมีค่าเท่ากันเป็นเพียงมูลค่าของcontent
คุณสมบัติที่คุณจะต้องกำหนดเอง
หากคุณยังต้องการตัวอย่างที่เป็นรูปธรรมโปรดดูคำตอบของฉันสำหรับคำถามที่คล้ายกันนี้
ข้อกำหนดเนื้อหา css3 แบบดั้งเดิมมีส่วนเกี่ยวกับการแทรกหลายองค์ประกอบ::before
และ::after
หลอกโดยใช้สัญกรณ์ที่เข้ากันได้กับ CSS2.1 cascade แต่โปรดทราบว่าเอกสารนั้นล้าสมัย - ยังไม่ได้รับการอัปเดตตั้งแต่ปี 2546 และไม่มีใครมี ใช้คุณลักษณะนั้นในทศวรรษที่ผ่านมา ข่าวดีก็คือว่าเอกสารที่ถูกทิ้งร้างเป็นอย่างแข็งขันระหว่างการเขียนในหน้ากากของCSS เนื้อหา-3และCSS-หลอก 4 ข่าวร้ายก็คือคุณลักษณะหลอกหลายองค์ประกอบไม่สามารถพบได้ในข้อกำหนดทั้งสองอย่างซึ่งน่าจะเป็นเพราะขาดความสนใจจากผู้ใช้งานอีกครั้ง
circle
และคลาสnow
กฎทั้งสองจะใช้กับองค์ประกอบ:before
หลอกขององค์ประกอบ แต่ CSS ปกติหมายความว่าการcontent
ตั้งค่าเพียงรายการเดียวเท่านั้นที่มีผล (ตามกฎการเรียงซ้อนปกติ) ประเด็นคือcontent
ไม่สะสม