1

かなり複雑なレイアウトでホバー効果を作成しようとしています。ホバー効果は機能しますが、ホバーすると背景(またはオーバーレイ)が画像を超えて広がります(画像と同じくらいの大きさにしたいです)。

その理由と修正方法を知っている人はいますか?

HTML

<article>
    <div class="img-crop">
        <a href="#" class="title-anchor"><h2>Title</h2></a>
        <a href="#"><img src="http://bit.ly/gUKbAE" /></a>
    </div>
</article>

CSS

* {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
}

article {
    overflow: hidden;
}

.title-anchor {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.img-crop:hover .title-anchor {
    background: rgba(0,0,0,0.5);
}

.img-crop {
    display: inline-block;
    position: relative;
    overflow: hidden;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

h2 {
    color: rgba(0,0,0,0);
    margin: 0;
    padding: 0;
    z-index: 2;
    line-height: 0;
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    text-align: center;
}

.img-crop:hover h2 {
    color: black;
}

ここにもあります: http://jsfiddle.net/kmjRu/39/

4

3 に答える 3

3

追加するだけ

img {
display: block;
}

http://jsfiddle.net/kmjRu/41/

画像はデフォルトでインライン要素に置き換えられます

于 2013-04-09T15:43:00.100 に答える
2

これをユニバーサル css に追加する必要があります。

img { border: 0; vertical-align: top;}

...

http://jsfiddle.net/Riskbreaker/kmjRu/43/

于 2013-04-09T15:45:37.587 に答える
0

.img-crop:hover の高さを .img-crop img と同じように定義します。例えば

.img-crop:hover {
    background: rgba(0,0,0,0.5);
    height: 100px;
}
.img-crop img{height: 100px;}
于 2013-04-09T15:45:45.957 に答える