31

マウスを画像の上に移動すると、画像の左下に小さなボックスが表示されるようにしようとしています。ボックスの中に別のページへのリンクがあります。

これは私が望むものと多少似ていますが、ボックスを小さくし、画像の境界に接続しません。

私はすべてを試しましたが、答えが見つかりません。そして、JavaScriptの知識がまったくないという事実は言うまでもなく、ツールチップを使用したくありません。私は本当にこれをCSSにしたいと思っています。

また、私が作業しようとしている画像は、ここで見つけることができます。

4

4 に答える 4

48

これは:hoverCSS3の疑似要素を使用しています。

HTML:

<div id="wrapper">
    <img src="http://placehold.it/300x200" class="hover" />
    <p class="text">text</p>
</div>​

CSS:

#wrapper .text {
position:relative;
bottom:30px;
left:0px;
visibility:hidden;
}

#wrapper:hover .text {
visibility:visible;
}

デモはこちら


代わりに、これはjqueryを使用して同じ結果を達成する方法です。

HTML:

<div id="wrapper">
    <img src="http://placehold.it/300x200" class="hover" />
    <p class="text">text</p>
</div>​

CSS:

#wrapper p {
position:relative;
bottom:30px;
left:0px;
visibility:hidden;
}

jqueryコード:

$('.hover').mouseover(function() {
  $('.text').css("visibility","visible");
});

$('.hover').mouseout(function() {
  $('.text').css("visibility","hidden");
});

HTMLページの本文の任意の場所にjqueryコードを配置できます。次に、次のようにjqueryライブラリをヘッドに含める必要があります。

<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>

ここでデモを見ることができます。

ウェブサイトで使用したい場合は、<img src />値を変更するだけで、複数の画像やキャプションを追加できます。使用した形式をコピーするだけですclass="hover"class="text"

于 2013-01-04T00:47:27.740 に答える
19

css を使用してこれを行う 1 つの方法を次に示します。

HTML

<div class="imageWrapper">
    <img src="http://lorempixel.com/300/300/" alt="" />
    <a href="http://google.com" class="cornerLink">Link</a>
</div>​

CSS

.imageWrapper {
    position: relative;
    width: 300px;
    height: 300px;
}
.imageWrapper img {
    display: block;
}
.imageWrapper .cornerLink {
    opacity: 0;
    position: absolute;
    bottom: 0px;
    left: 0px;
    right: 0px;
    padding: 2px 0px;
    color: #ffffff;
    background: #000000;
    text-decoration: none;
    text-align: center;
    -webkit-transition: opacity 500ms;
    -moz-transition: opacity 500ms;
    -o-transition: opacity 500ms;
    transition: opacity 500ms;

}
.imageWrapper:hover .cornerLink {
    opacity: 0.8;
}

デモ

または、左下隅に配置したい場合:

デモ

于 2013-01-04T00:37:20.350 に答える