ก่อนหน้านี้คำถามนี้ถูกถามมาหลายครั้งและคำตอบทั่วไปสั้น ๆ ก็คือมันไม่สามารถทำได้โดย CSS บริสุทธิ์ มันอยู่ในชื่อ: สไตล์ชีทแบบเรียงซ้อนรองรับเฉพาะสไตล์ในทิศทางแบบเรียงซ้อนเท่านั้น
แต่ในสถานการณ์ส่วนใหญ่ที่ผลกระทบนี้ต้องการเช่นในตัวอย่างที่กำหนดยังมีความเป็นไปได้ที่จะใช้คุณสมบัติแบบเรียงซ้อนเหล่านี้เพื่อให้ได้ผลตามที่ต้องการ พิจารณามาร์กอัปแบบหลอกนี้:
<parent>
<sibling></sibling>
<child></child>
</parent>
เคล็ดลับคือการให้พี่น้องมีขนาดและตำแหน่งเท่ากันกับผู้ปกครองและกำหนดลักษณะของพี่น้องแทนผู้ปกครอง นี้จะมีลักษณะเหมือนพ่อแม่ที่มีสไตล์!
ตอนนี้วิธีการจัดสไตล์พี่น้อง?
เมื่อเด็กโฮเวอร์ผู้ปกครองก็เช่นกัน แต่พี่น้องไม่ได้เป็นเช่นนั้น เช่นเดียวกันสำหรับพี่น้อง สรุปในสามเส้นทาง CSS ตัวเลือกที่เป็นไปได้สำหรับจัดแต่งทรงผมพี่น้อง
parent sibling { }
parent sibling:hover { }
parent:hover sibling { }
เส้นทางที่แตกต่างเหล่านี้ช่วยให้มีความเป็นไปได้ที่ดี ตัวอย่างเช่นปล่อยเคล็ดลับนี้ในตัวอย่างในคำถามผลลัพธ์ในซอนี้ :
div {position: relative}
div:hover {background: salmon}
div p:hover {background: white}
div p {padding-bottom: 26px}
div button {position: absolute; bottom: 0}
เห็นได้ชัดว่าในกรณีส่วนใหญ่เคล็ดลับนี้ขึ้นอยู่กับการใช้การกำหนดตำแหน่งแบบสัมบูรณ์เพื่อให้พี่น้องมีขนาดเท่ากันกับผู้ปกครองและยังคงปล่อยให้เด็ก ๆ
บางครั้งมีความจำเป็นต้องใช้พา ธ ตัวเลือกที่ผ่านการรับรองเพื่อเลือกองค์ประกอบเฉพาะดังที่แสดงในซอนี้ซึ่งใช้กลอุบายหลายครั้งในเมนูทรี ค่อนข้างดีจริงๆ