いくつかの html コードがないと、確かなことはわかりませんが、ソースに閉じられていないタグがいくつかあると思います。しかし、私が正しく理解していれば、いくつかのボックス (あなたの場合は画像) があり、ユーザーがマウスをそれらの上に移動したときにボックスの下部に表示するキャプション/テキストがあります。
以下に、CSS のみを使用してこの効果を得る方法を示します。ボックスとしてフロートする div を使用します。基本的な html と css は次のとおりです。
<html>
<head>
<style type="text/css">
.box {
float: left;
width: 200px;
height: 200px;
background-color: yellow;
margin: 10px;
}
.box h2 { text-align: center; }
</style>
</head>
<body>
<div class="box"><h2>Div 1</h2></div>
<div class="box"><h2>Div 2</h2></div>
<div class="box"><h2>Div 3</h2></div>
<div class="box"><h2>Div 4</h2></div>
</body>
</html>
これにより、ヘッダーが内側にある 4 つの黄色いボックスが表示されます。ラベルについては、<span>
次のように、各 div の最後に単純なものを追加します。
<div class="box"><h2>Div 1</h2><span>div 1 hover</span></div>
次に、次の css を追加して、ユーザーがマウスをボックスの上に移動したときにのみ表示されるようにします。
.box span {
display: none;
}
.box:hover span {
display: inline;
}
これで基本的な効果が現れました。次は、ホバー テキストを正しく配置します。これを行うspan
には、ボックスに対する相対的な絶対配置を使用します。これを行うには、まずposition:relative
ルールに を追加し.box { /* ... */ }
ます。に追加position:absolute
し.box:hover span { /*...*/ }
ます。ボックスには相対位置があるため、絶対配置の位置span
はボックスに対して相対的になります。
次のように、span
属性top
、bottom
、を使用してを配置できます。left
right
.box span {
display: none;
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
text-align: center;
}
これにより、span
要素の下部がボックスの下部に配置され、左から右に移動するようにサイズが変更されます。テキスト自体は水平方向に中央揃えされます。マウスをボックスの上に移動すると、各ボックスの下部にテキストが表示されます。
完全を期すために、完全な例を次に示します。
<html>
<head>
<style type="text/css">
.box {
float: left;
width: 200px;
height: 200px;
background-color: yellow;
margin: 10px;
position: relative;
}
.box h2 { text-align: center; }
.box span {
display: none;
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
text-align: center;
}
.box:hover span {
display: inline;
}
</style>
</head>
<body>
<div class="box"><h2>Div 1</h2><span>div 1 hover</span></div>
<div class="box"><h2>Div 2</h2><span>div 2 hover</span></div>
<div class="box"><h2>Div 3</h2><span>div 3 hover</span></div>
<div class="box"><h2>Div 4</h2><span>div 4 hover</span></div>
</body>
</html>