这是因为您已将带有标题的图像包装在块元素内,这些块元素跨越了其容器的整个宽度。 float适用于灰度图像,而不适用于它们的父元素,因此即使所有图像都是浮动的,它们也不再是彼此的兄弟;它们是悬停包装器的兄弟姐妹。
图像仍然是浮动的,但它们在它们的容器(包装器)内是单独的,并且包装器没有浮动。
您可以在没有任何 JS 的情况下添加悬停标题:只需将标题添加为每个.gsWrapper元素内的另一个元素,并将其设置为在悬停时显示。
精简示例:
<div class="gsWrapper">
<img class="img_mosaique_cat_projets noir_blanc" src="img/sj-concelles/220x168.jpg" alt="titre projets">
<canvas class="gsCanvas" height="168" width="220" style="left: 0px; position: absolute; top: 0px;"></canvas>
<div class="hide-hover">test content for hover</div>
</div>
和造型:
.hide-hover {
position: absolute;
}
.gsWrapper:not(:hover) .hide-hover {
display: none;
}
这样您就不必担心调整所有其他样式和 JS 以适应某些图像的包装器。
其他演示:使用 jQuery slideToggle 效果隐藏/显示标题:http: //jsbin.com/idugaw/3/edit
使用纯 CSS 实现 slideToggle 效果:http: //jsbin.com/idugaw/4/edit