我有这个结构:
<div id="d1">
Text
<div id="d2">Word</div>
<a href="#hide">My other text</a>
</div>
现在,当点击
#hide:target
时,div#d2
消失。我能用CSS实现这个吗?
我有这个结构:
<div id="d1">
Text
<div id="d2">Word</div>
<a href="#hide">My other text</a>
</div>
#hide:target
时,div#d2
消失。你可以使用CSS来实现这个功能!
如果你稍微改变一下HTML标记,就可以通过使用CSS:target
来达到这个效果。
#d2:target {
display: none;
}
<div id="d1">
Text
<div id="d2">Word
<a href="#d2">My other text</a>
</div>
<div id="d1">
Text
<div id="d2">Word</div>
<a href="#hide" onclick="document.getElementById('d2').style.display='none';">My other text</a>
</div>
<div id="d1">
Text
<div id="d2">Word</div>
<a href="#hide" onclick="this.previousSibling.previousSibling.style.display='none';">My other text</a>
</div>
你可能需要使用 JavaScript 或 jQuery 来完成这个任务。
$('#object').click(function(){
$('#tohide').hide();
});
if($('#d2 a').attr('href')=='#hide'){
$('#d2 a').click(function(){
$('#d2').hide();
});
}
但这不是正确的做法。使用类。
$(document).ready(function(){
$("a").click(function(){
$("#d2").hide();
});
});
使用 CSS 我认为不可能,但你可以使用我在这里提供的代码,它基于 JavaScript,在这种情况下非常有用。我不太擅长解释,但对于这些类型的问题,我建议学习 JavaScript。
<div id="d1">Text</div>
<div id="d2">Word</div>
<a onclick="hide()">My other text</a>
这是你的HTML文件,我创建了一个DOM事件,当你点击时,我们的js文件中将运行一个名为hide()的函数。提示:不要忘记将html与javascript文件链接起来。你可以使用以下方式完成:
<script src="yourfilegoeshere"><script>
#d1 {
opacity: 1;
}
#d2 {
opacity: 1;
}
基于这个 CSS,两者都是可见的。现在让我们转到我们的 JS 文件:
function hide() {
var d2 = document.getElementById('d2')
d2.style.opacity = '0'
}
我坚信CSS是用于样式,而JavaScript是用于功能(HTML则用于标记)。
我曾经犯过使用:target和在不应该的地方使用CSS构建功能的错误,相信我,这些不良习惯会让你在未来遇到噩梦。在这种情况下,jQuery将成为您最好的朋友。它适用于所有支持JavaScript的浏览器,您不必担心功能在边缘情况下崩溃,也不必担心用户感到恼火。按照Jack的建议使用一些简单的jQuery。您还可以使用.addClass和.removeClass以其他方式更改CSS,而不仅仅是隐藏/显示。
:hover
选择器,但没有点击。 - gvee:active
不是一个点击选择器吗? - Memolition