我相信这就像你想要的:
这是我用来模拟您的图片之类的 HTML。我在按钮中使用了“V”以避免从某个地方加载图形,但你明白了。
<div>
<div class="langs"><span>ENG</span><span>FIN</span><span>RUS</span></div><div class="sbtn">V</div>
</div>
<div id="morelangs" class="hidelangs">
<div class="langs">
<div><span>ENG</span><span>FIN</span><span>RUS</span></div>
<div><span>ENG</span><span>FIN</span><span>RUS</span></div>
</div>
</div>
请注意“morelangs”下额外的两行语言。
这是我使用的 CSS。主要技巧是 hidelangs 类,它使用“display: none;” 隐藏其他 2 行语言。另外,我使用“显示:内联块;” 允许水平堆叠一些 div 元素。
.hidelangs {
display: none;
}
.langs {
display: inline-block;
}
.langs span {
background-color: #555555;
color: white;
padding: 4px;
font-size: 80%;
margin: 0;
}
.sbtn {
background-color: #999999;
width: 30px;
text-align: center;
color: white;
padding: 4px;
font-size: 80%;
margin: 0;
display: inline-block;
}
JavaScript/jQuery 仅用于处理类似按钮的 div 上的点击,它在点击时所做的一切就是删除 CSS 类 hidelangs(如果存在),或者添加它(如果不存在)(jQuery 中的 toggleClass):
$(document).ready(function(e) {
$(".sbtn").on("click", function(e) {
$("#morelangs").toggleClass("hidelangs");
});
});
在这里工作 jsFiddle ,这样你就可以看到它是如何工作的。单击“V”浅色按钮状 div 以打开和关闭额外的行。
您还可以在单击处理程序中将按钮内容切换到不同的图像,因为在您的图片中,单击后箭头是倒置的。