我试图制作Tumblr页面。这个想法是在左侧列出几个书名,当它们悬停时,在右侧显示所述书的信息。
那里,"示例2"正在蓝框中盘旋,因此其相应的信息显示在右侧的红色框中。如果我将鼠标悬停在"示例3"从那里,"示例2"的信息框;会在#34;示例3"会消失。我希望我能在这里有所作为。
现在,我知道我可以用纯CSS实现这一点,但我想这将涉及为列表中的每个标题创建一个自定义CSS类。在避免CSS舞蹈的同时还有其他方法可以做到这一点吗?
答案 0 :(得分:1)
Pure CSS, one class for all titles - Codepen
<强> HTML 强>
<div class="menu">
<a href="#">Example 1</a>
<div class="show">
<h1>EXAMPLE 1</h1>
<hr>
<p>text here</p>
</div>
<a href="#">Example 2</a>
<div class="show">
<h1>EXAMPLE 2</h1>
<hr>
<p>text here</p>
</div>
<a href="#">Example 3</a>
<div class="show">
<h1>EXAMPLE 3</h1>
<hr>
<p>text here</p>
</div>
<a href="#">Example 4</a>
<div class="show">
<h1>EXAMPLE 4</h1>
<hr>
<p>text here</p>
</div>
</div>
<强> CSS 强>
body, html {
margin: 0;
padding: 0;
font-family: 'Roboto', sans-serif;
}
.menu {
width: 120px;
height: 300px;
background-color: #2F43B7;
}
.menu a {
color: #fff;
text-decoration: none;
padding: 10px 15px;
display: block;
}
.menu a:hover + .show { /* Select .show that is immediately after a */
opacity: 1;
}
.show {
transition: 500ms;
opacity: 0;
background-color: #B72F2F;
position: absolute;
top: 0;
left: 130px;
width: 400px;
height: 300px;
text-align: center;
}
.show h1 {
font-size: 46px;
margin-bottom: 0;
}
.show h1,
.show p {
color: #fff;
}
.show hr {
width: 90%;
border: 2px solid #000;
}
与 jQuery :
相同的效果$(".show").css("opacity", 0);
$("a").hover(
function(){
$(this).next(".show").stop().fadeTo("slow",1);
},
function(){
$(this).next(".show").stop().fadeTo("slow",0);
});