मैं एक div दिखाना चाहूंगा जब कोई किसी <a>
तत्व पर होवर करता है, लेकिन मैं ऐसा CSS में करना चाहूंगा ना कि JavaScript में। क्या आप जानते हैं कि यह कैसे हासिल किया जा सकता है?
मैं एक div दिखाना चाहूंगा जब कोई किसी <a>
तत्व पर होवर करता है, लेकिन मैं ऐसा CSS में करना चाहूंगा ना कि JavaScript में। क्या आप जानते हैं कि यह कैसे हासिल किया जा सकता है?
जवाबों:
आप की तरह कुछ कर सकते हैं इस :
div {
display: none;
}
a:hover + div {
display: block;
}
<a>Hover over me!</a>
<div>Stuff shown on hover</div>
यह आसन्न सिबलिंग चयनकर्ता का उपयोग करता है , और यह सकरफिश ड्रॉपडाउन मेनू का आधार है ।
एचटीएमएल 5 लंगर तत्वों को लगभग कुछ भी लपेटने की अनुमति देता है, इसलिए उस मामले में div
तत्व को लंगर का बच्चा बनाया जा सकता है। अन्यथा सिद्धांत समान है - किसी अन्य तत्व :hover
की display
संपत्ति को बदलने के लिए छद्म वर्ग का उपयोग करें ।
<div>
पेज पर बना देगा display:none
और जब माउस "मेरे ऊपर मंडराना" होगा! यह एक ही माता-पिता <div>
के <a>
अंदर हर पीछा करेगा display:block
। यह .class-name
या उसके द्वारा चयन करने के लिए एक बेहतर विचार हो सकता है #id
। नहीं तो अच्छी पोस्ट।
.showme {
display: none;
}
.showhim:hover .showme {
display: block;
}
<div class="showhim">HOVER ME
<div class="showme">hai</div>
</div>
चूंकि यह उत्तर लोकप्रिय है, मुझे लगता है कि एक छोटे से स्पष्टीकरण की आवश्यकता है। इस विधि का उपयोग करते हुए जब आप आंतरिक तत्व पर मंडराते हैं, तो यह गायब नहीं होता है। क्योंकि .showme अंदर है .showhim यह तब गायब नहीं होगा जब आप अपने माउस को पाठ की दो पंक्तियों (या जो कुछ भी है) के बीच ले जाते हैं।
ये इस तरह के व्यवहार को लागू करते समय आपको ध्यान रखने की आवश्यकता के उदाहरण हैं।
यह सब निर्भर करता है कि आपको इसके लिए क्या चाहिए। यह विधि मेनू शैली के परिदृश्य के लिए बेहतर है, जबकि यी जियांग के टूलटिप्स के लिए बेहतर है।
<span>
एस का उपयोग करने के लिए बेहतर हो सकता है , लेकिन मुझे लगता है कि यह यी जियांग की तुलना में बेहतर उदाहरण है।
मैंने पाया कि अस्पष्टता का उपयोग करना बेहतर है, यह आपको एक अच्छा समाप्त होवर प्रभाव बनाने के लिए css3 संक्रमण जोड़ने की अनुमति देता है। संक्रमण केवल पुराने IE ब्राउज़रों द्वारा गिराया जाएगा, इसलिए यह कृपापूर्वक अपमानित करता है।
#stuff {
opacity: 0.0;
-webkit-transition: all 500ms ease-in-out;
-moz-transition: all 500ms ease-in-out;
-ms-transition: all 500ms ease-in-out;
-o-transition: all 500ms ease-in-out;
transition: all 500ms ease-in-out;
}
#hover {
width:80px;
height:20px;
background-color:green;
margin-bottom:15px;
}
#hover:hover + #stuff {
opacity: 1.0;
}
<div id="hover">Hover</div>
<div id="stuff">stuff</div>
#hover:hover + #stuff {
करने के लिए #hover:hover + #stuff, #stuff:hover {
। जब आप उस div पर जाते हैं तो "सामान" div दिखाई देता है!
मुझे पता है कि एक विशेषज्ञ का मतलब है, लेकिन मुझे इस कोड के बारे में कुछ काम करने के लिए खुद पर गर्व है। यदि तुम करो:
div {
display: none;
}
a:hover > div {
display: block;
}
('>' पर ध्यान दें) आप एक टैग में पूरी चीज़ को शामिल कर सकते हैं, फिर, जब तक आपका ट्रिगर (जो कि खुद का div हो सकता है, या किसी टैग में सीधे हो सकता है, या आप जो कुछ भी चाहते हैं) शारीरिक रूप से छू रहा है प्रकट div, आप अपने माउस को एक से दूसरे में स्थानांतरित कर सकते हैं।
शायद यह एक महान सौदे के लिए उपयोगी नहीं है, लेकिन मुझे अपनी प्रकट div को अतिप्रवाह करने के लिए सेट करना था: ऑटो, इसलिए कभी-कभी इसमें स्क्रॉल बार होते थे, जो कि div से दूर जाते ही इस्तेमाल नहीं किया जा सकता था।
वास्तव में, आखिरकार वर्क आउट करने के तरीके का पता लगाने के बाद, (हालांकि यह अब ट्रिगर का बच्चा है, भाई-बहन नहीं), z- इंडेक्स के संदर्भ में, ट्रिगर के पीछे बैठें, (इस पेज से थोड़ी मदद से) : बच्चे के ऊपर प्रकट होने के लिए एक मूल तत्व कैसे प्राप्त करें ) आपको इसे स्क्रॉल करने के लिए प्रकट div पर रोल करने की ज़रूरत नहीं है, बस ट्रिगर पर मंडराते रहें और अपने पहिया का उपयोग करें, या जो भी हो।
मेरी प्रकट div पृष्ठ के अधिकांश हिस्से को कवर करती है, इसलिए यह तकनीक माउस के हर कदम के साथ एक राज्य से दूसरे स्क्रीन पर चमकती स्क्रीन के बजाय इसे और अधिक स्थायी बनाती है। यह वास्तव में वास्तव में सहज है, इसलिए मुझे वास्तव में खुद पर काफी गर्व है।
केवल नकारात्मक पक्ष यह है कि आप पूरी चीज़ के भीतर लिंक नहीं डाल सकते हैं, लेकिन आप पूरी चीज़ को एक बड़ी लिंक के रूप में उपयोग कर सकते हैं।
इस उत्तर की आवश्यकता नहीं है कि आप जानते हैं कि किस प्रकार के प्रदर्शन (इनलाइन, आदि) को दिखाने योग्य तत्व को दिखाया जा रहा है:
.hoverable:not(:hover) + .show-on-hover {
display: none;
}
<a class="hoverable">Hover over me!</a>
<div class="show-on-hover">I'm a block element.</div>
<hr />
<a class="hoverable">Hover over me also!</a>
<span class="show-on-hover">I'm an inline element.</span>
इस का उपयोग करता है आसन्न भाई चयनकर्ता और नहीं चयनकर्ता ।
मैं इस सामान्य उद्देश्य टेम्पलेट समाधान की पेशकश करना चाहूंगा जो यी जियांग द्वारा प्रदान किए गए सही समाधान पर फैलता है।
अतिरिक्त लाभ में शामिल हैं:
HTML में आप निम्न संरचना रखते हैं:
<div class="information_popup_container">
<div class="information">
<!-- The thing or things you want to hover over go here such as images, tables,
paragraphs, objects other divisions etc. -->
</div>
<div class="popup_information">
<!-- The thing or things you want to popup go here such as images, tables,
paragraphs, objects other divisions etc. -->
</div>
</div>
सीएसएस में आप निम्नलिखित संरचना रखते हैं:
div.information_popup_container {
position: absolute;
width:0px;
height:0px;
/* Position Information */
/* Appearance Information */
}
div.information_popup_container > div.information {
/* Position Information */
/* Appearance Information */
}
div.information_popup_container > div.popup_information {
position: fixed;
visibility: hidden;
/* Position Information */
/* Appearance Information */
}
div.information_popup_container > div.information:hover + div.popup_information {
visibility: visible;
z-index: 200;
}
अतिरिक्त जानकारी के रूप में। जब पॉपअप में ऐसी जानकारी होती है, जिसे आप काटना और चिपकाना चाहते हैं या उसमें कोई ऐसी वस्तु शामिल होती है, जिसे आप उसके साथ इंटर करना चाहते हैं, तो पहले बदलें:
div.information_popup_container > div.information:hover + div.popup_information {
visibility: visible;
z-index: 200;
}
साथ में
div.information_popup_container > div.information:hover + div.popup_information
,div.information_popup_container > div.popup_information:hover {
visibility: visible;
z-index: 200;
}
और दूसरा, div.popup की स्थिति को समायोजित करें ताकि div.information के साथ एक ओवरलैप हो। यह सुनिश्चित करने के लिए कुछ पिक्सेल पर्याप्त हैं कि div.popup coveror को div.information से हटाते समय हॉवर प्राप्त कर सकता है।
यह Internet Explorer 10.0.9200 के साथ अपेक्षित रूप से काम नहीं करता है और ओपेरा 12.16, फ़ायरफ़ॉक्स 18.0 और Google Chrome 28.0.15 के साथ अपेक्षित रूप से काम करता है।
एक पॉपअप बहुस्तरीय मेनू के साथ एक पूर्ण उदाहरण के लिए fiddle http://jsfiddle.net/F68Le/ देखें ।
कृपया इस कोड का परीक्षण करें
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
div
{
display:none;
color:black
width:100px;
height:100px;
background:white;
animation:myfirst 9s;
-moz-animation:myfirst 9s; /* Firefox */
-webkit-animation:myfirst 5s; /* Safari and Chrome */
}
@keyframes myfirst
{
0% {background:blue;}
25% {background:yellow;}
50% {background:blue;}
100% {background:green;}
}
@-moz-keyframes myfirst /* Firefox */
{
0% {background:white;}
50% {background:blue;}
100% {background:green;}
}
@-webkit-keyframes myfirst /* Safari and Chrome */
{
0% {background:red;}
25% {background:yellow;}
50% {background:blue;}
100% {background:green;}
}
a:hover + div{
display:inline;
}
</style>
</head>
<body>
<a href="#">Hover over me!</a>
<div>the color is changing now</div>
<div></div>
</body>
</html>
+
केवल पहले नहीं नेस्टेड तत्व 'का चयन करें' अनुमति देते हैं, >
का चयन नेस्टेड केवल तत्वों - बेहतर उपयोग करने के लिए है ~
जो मनमाना तत्व है जो माता-पिता की संतान है का चयन करने के लिए अनुमति देने के तत्व hovered। अपारदर्शिता / चौड़ाई और संक्रमण का उपयोग करके आप सहज रूप प्रदान कर सकते हैं
div { transition: all 1s }
.ccc, .ggg { opacity: 0; color: red}
.ccc { height: 0 }
.aaa:hover ~ .bbb .ccc { opacity: 1; height: 34px }
.aaa:hover ~ .eee .fff .ggg { opacity: 1 }
<div class="aaa">Hover me... to see<br><br> </div>
<div class='bbb'>BBBBB
<div class='ccc'>CCCCC
<div class='ddd'>DDDDD</div>
</div>
</div>
<div class='eee'>EEEEE
<div class='fff'>FFFFF
<div class='ggg'>GGGGG</div>
<div class='hhh'>HHHHH</div>
</div>
</div>
मुख्य उत्तर के आधार पर, यह एक उदाहरण है, ?
जो किसी लिंक के पास क्लिक करने पर सूचना टूलटिप प्रदर्शित करने के लिए उपयोगी है :
document.onclick = function() { document.getElementById("tooltip").style.display = 'none'; };
document.getElementById("tooltip").onclick = function(e) { e.stopPropagation(); }
document.getElementById("help").onclick = function(e) { document.getElementById("tooltip").style.display = 'block';
e.stopPropagation(); };
#help { opacity: 0; margin-left: 0.1em; padding: 0.4em; }
a:hover + #help, #help:hover { opacity: 0.5; cursor: pointer; }
#tooltip { border: 1px solid black; display: none; padding: 0.75em; width: 50%; text-align: center; font-family: sans-serif; font-size:0.8em; }
<a href="">Delete all obsolete informations</a><span id="help">?</span>
<div id="tooltip">All data older than 2 weeks will be deleted.</div>
इस CSS का उपयोग करके मेरे परीक्षण से:
.expandable{
display: none;
}
.expand:hover+.expandable{
display:inline !important;
}
.expandable:hover{
display:inline !important;
}
और यह HTML:
<div class="expand">expand</div>
<div class="expand">expand</div>
<div class="expandable">expandable</div>
, यह परिणाम है कि यह दूसरे का उपयोग करके विस्तार करता है, लेकिन पहले एक का उपयोग करके विस्तार नहीं करता है। इसलिए अगर होवर टारगेट और छिपे हुए डिव के बीच एक तलाक है, तो यह काम नहीं करेगा।
एचटीएमएल
<div>
<h4>Show content</h4>
</div>
<div>
<p>Hello World</p>
</div>
सीएसएस
div+div {
display: none;
}
div:hover +div {
display: block;
}
मत भूलना। यदि आप एक छवि के आसपास मंडराने की कोशिश कर रहे हैं, तो आपको इसे एक कंटेनर के आसपास रखना होगा। सीएसएस:
.brand:hover + .brand-sales {
display: block;
}
.brand-sales {
display: none;
}
यदि आप इस पर मंडराते हैं:
<span className="brand">
<img src="https://murmure.me/wp-content/uploads/2017/10/nike-square-1900x1900.jpg"
alt"some image class="product-card-place-logo"/>
</span>
यह दिखाएगा:
<div class="product-card-sales-container brand-sales">
<div class="product-card-">Message from the business goes here. They can talk alot or not</div>
</div>