0

画像の上にテキストを重ねるにはどうすればよいですか? 画像が配置されている場所にテキストボックスを正確に表示して、画像が完全に消え、マウスアウトすると画像が再び表示されるようにします。私はすべてを検索しましたが、ホバーボックスの位置が画像の位置とは異なるホバー効果しか見つかりませんでした...

4

3 に答える 3

1

css:

.textHover {
    display:none;
    width:100%;
    height:100%;
    position:absolute;
    top:0; left:0;
    text-align:center;
    color:white;
}
.imgContain {
    position:relative;
    display:table;
}
.imgContain:hover .textHover {
    display:block;
}

マークアップ:

<div class="imgContain">
    <img src="http://placehold.it/300x200"/>
    <div class="textHover">My text here</div>
</div>

http://jsfiddle.net/EACxV/

于 2013-03-08T16:20:55.693 に答える
1

CSS3 に依存せずにスムーズな移行が必要でない限り、JavaScript は必要ありません。画像のサイズが固定されていると仮定すると、次のようになります。

<div>
    <p>Text</p>
    <img src="" alt="" width="100px" height="100px" />
</div>

div { position:relative; z-index:1; height:100px; width:100px;  }
img { position:absolute; top:0; left:0; z-index:2; }
div:hover img { display:none; }

JSFiddle

于 2013-03-08T16:16:43.387 に答える
0

そのために JavaScript コードは必要ありません。純粋な html & css ではうまく動作します。以下は、不透明度を変更したcssアニメーションの例です。

html

    <div class="hvrbox">
        <img src="https://upload.wikimedia.org/wikipedia/commons/2/22/Bochnia_poland_saltmine.jpg" alt="塩鉱山" class="hvrbox-layer_bottom">
        <div class="hvrbox-layer_top">
            <div class="hvrbox-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce porttitor ligula porttitor, lacinia sapien non.</div>
        </div>
    </div>

CSS

    .hvrbox、
    .hvrbox * {
        ボックスサイズ: ボーダーボックス;
    }
    .hvrbox {
        位置: 相対;
        表示: インラインブロック;
        オーバーフロー: 非表示;
        最大幅: 100%;
        高さ: 自動;
    }
    .hvrbox img {
        最大幅: 100%;
    }
    .hvrbox .hvrbox-layer_bottom {
        表示ブロック;
    }
    .hvrbox .hvrbox-layer_top {
        不透明度: 0;
        位置: 絶対;
        上: 0;
        左: 0;
        右: 0;
        下: 0;
        幅: 100%;
        高さ: 100%;
        背景: rgba(0, 0, 0, 0.6);
        色: #fff;
        パディング: 15px;
        -moz-transition: すべての 0.4s イーズインアウト 0;
        -webkit-transition: すべて 0.4 のイーズインアウト 0;
        -ms-transition: すべての 0.4s イーズインアウト 0;
        トランジション: すべて 0.4 秒のイーズイン アウト 0。
    }
    .hvrbox:ホバー .hvrbox-layer_top,
    .hvrbox.active .hvrbox-layer_top {
        不透明度: 1;
    }
    .hvrbox .hvrbox-テキスト {
        テキスト整列: 中央;
        フォントサイズ: 18px;
        表示: インラインブロック;
        位置: 絶対;
        上: 50%;
        左: 50%;
        -moz-transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        変換: 翻訳 (-50%, -50%);
    }
    .hvrbox .hvrbox-text_mobile {
        フォントサイズ: 15px;
        border-top: 1px ソリッド RGB(179, 179, 179); /* 古いブラウザの場合 */
        border-top: 1px ソリッド rgba(179, 179, 179, 0.7);
        マージントップ: 5px;
        パディングトップ: 2px;
        表示: なし;
    }
    .hvrbox.active .hvrbox-text_mobile {
        表示ブロック;
    }

ここで、多くの同様の例(より良いアニメーションを使用)で説明しましたhttp://goo.gl/EECjCm

于 2015-12-06T10:34:48.423 に答える