उनके मददगार पोस्ट के लिए माइक और रॉबर्ट को बहुत धन्यवाद!
यदि आपके HTML में दो तत्व हैं और आप :hover
एक से अधिक को लक्षित करना चाहते हैं और अन्य दो तत्वों में शैली परिवर्तन को सीधे संबंधित होना चाहिए - माता-पिता, बच्चे या भाई-बहन। इसका मतलब यह है कि दो तत्व या तो एक दूसरे के अंदर होने चाहिए या दोनों एक ही बड़े तत्व के भीतर समाहित होने चाहिए।
मैं ब्राउज़र के दाईं ओर एक बॉक्स में परिभाषाओं को प्रदर्शित करना चाहता था क्योंकि मेरे उपयोगकर्ता मेरी साइट पर और :hover
हाइलाइट किए गए शब्दों के माध्यम से पढ़ते हैं; इसलिए, मैं नहीं चाहता था कि 'परिभाषा' तत्व 'पाठ' तत्व के अंदर प्रदर्शित हो।
मैंने लगभग छोड़ दिया और बस अपने पेज पर जावास्क्रिप्ट जोड़ दिया, लेकिन यह भविष्य का खतरा है! हमें सीएसएस और एचटीएमएल से बैक सास के साथ नहीं कहना चाहिए, हमें यह बताना होगा कि हमें अपने प्रभाव को प्राप्त करने के लिए हमारे तत्वों को कहां रखना है! अंत में हमने समझौता किया।
जबकि फ़ाइल में वास्तविक HTML तत्वों :hover
को एक दूसरे के लिए वैध लक्ष्य होने के लिए या तो निहित या निहित होना चाहिए , css position
विशेषता का उपयोग किसी भी तत्व को प्रदर्शित करने के लिए किया जा सकता है जहाँ आप कभी भी चाहें। मैंने स्थिति का उपयोग किया: अपनी :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>
सीएसएस:
/*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
इस मामले में कोई कारण नहीं है ?
~
'क्यूब के लिए डोम में कंटेनर के बाद कहीं है और एक अभिभावक को साझा करता है' के लिए सामान्य भाई