ขอบคุณมากสำหรับ Mike และ Robertc สำหรับการโพสต์ที่เป็นประโยชน์ของพวกเขา!
หากคุณมีสององค์ประกอบใน HTML ของคุณและคุณต้องการที่จะ:hover
มากกว่าหนึ่งและกำหนดเป้าหมายการเปลี่ยนแปลงสไตล์ในอื่น ๆ ทั้งสององค์ประกอบจะต้องเกี่ยวข้องโดยตรง - ผู้ปกครองเด็กหรือพี่น้อง ซึ่งหมายความว่าองค์ประกอบทั้งสองจะต้องเป็นองค์ประกอบหนึ่งในอีกองค์ประกอบหนึ่งหรือทั้งสองต้องอยู่ในองค์ประกอบที่มีขนาดใหญ่กว่าเดิม
ผมอยากจะแสดงผลคำจำกัดความในช่องทางด้านขวาของเบราว์เซอร์เป็นผู้ใช้ของฉันอ่านผ่านทางเว็บไซต์ของฉันและ:hover
แง่ไฮไลต์มากกว่า; ดังนั้นฉันไม่ต้องการให้องค์ประกอบ 'นิยาม' แสดงในองค์ประกอบ 'ข้อความ'
ฉันเกือบยอมแพ้และเพิ่งเพิ่มจาวาสคริปต์ในหน้าของฉัน แต่นี่คืออนาคตแล้ว! เราไม่ควรที่จะอดทนกับ back sass จาก CSS และ HTML เพื่อบอกเราว่าเราต้องวางองค์ประกอบของเราเพื่อให้ได้เอฟเฟกต์ที่เราต้องการ! ในที่สุดเราก็ยอมจำนน
ในขณะที่องค์ประกอบ HTML จริงในไฟล์จะต้องซ้อนกันหรืออยู่ในองค์ประกอบเดียวเพื่อเป็น:hover
เป้าหมายที่ถูกต้องซึ่งกันและกันposition
คุณลักษณะcss สามารถใช้เพื่อแสดงองค์ประกอบใด ๆ ที่คุณต้องการ ฉันใช้ตำแหน่ง: แก้ไขเพื่อกำหนดเป้าหมายของ:hover
การกระทำของฉันในตำแหน่งที่ฉันต้องการบนหน้าจอของผู้ใช้โดยไม่คำนึงถึงตำแหน่งในเอกสาร HTML
html ที่:
<div id="explainBox" class="explainBox"> /*Common parent*/
<a class="defP" id="light" href="http://en.wikipedia.or/wiki/Light">Light /*highlighted term in text*/
</a> is as ubiquitous as it is mysterious. /*plain text*/
<div id="definitions"> /*Container for :hover-displayed definitions*/
<p class="def" id="light"> /*example definition entry*/ Light:
<br/>Short Answer: The type of energy you see
</p>
</div>
</div>
CSS:
/*read: "when user hovers over #light somewhere inside #explainBox
set display to inline-block for #light directly inside of #definitions.*/
#explainBox #light:hover~#definitions>#light {
display: inline-block;
}
.def {
display: none;
}
#definitions {
background-color: black;
position: fixed;
/*position attribute*/
top: 5em;
/*position attribute*/
right: 2em;
/*position attribute*/
width: 20em;
height: 30em;
border: 1px solid orange;
border-radius: 12px;
padding: 10px;
}
ในตัวอย่างนี้เป้าหมายของการเป็น:hover
คำสั่งจากองค์ประกอบภายใน#explainBox
ต้องเป็นหรือยังอยู่ใน#explainBox
#explainBox
แอตทริบิวต์ตำแหน่งที่กำหนดให้ #definitions บังคับให้ปรากฏในตำแหน่งที่ต้องการ (นอก#explainBox
) แม้ว่าจะอยู่ในตำแหน่งที่ไม่พึงประสงค์ทางเทคนิคภายในเอกสาร HTML
ฉันเข้าใจว่าเป็นรูปแบบที่ไม่ดีที่จะใช้#id
องค์ประกอบ HTML มากกว่าหนึ่งองค์ประกอบ อย่างไรก็ตามในกรณีนี้กรณีของ#light
สามารถอธิบายได้อย่างอิสระเนื่องจากตำแหน่งของตนใน#id
องค์ประกอบที่ไม่ซ้ำกัน มีเหตุผลที่จะไม่ทำซ้ำid
#light
ในกรณีนี้หรือไม่?
~
สำหรับ 'คิวบ์อยู่ที่ไหนสักแห่งหลังจากภาชนะใน DOM และแบ่งปันผู้ปกครอง'