私は反応的な画像ギャラリーを作りたいと思います。それは、サムネイルのホバー上に拡大画像を表示します。ギャラリーはJSを使用することはできません。これは要件です。レスポンシブな、純粋なCSSホバー画像ギャラリー
しかし、少し問題があります。ギャラリーは反応が必要です。 これは、展開されたイメージが、より小さいデバイスで応答性とサイズが変更されるデフォルトイメージと同じサイズでなければならないことを意味します。ここで
は私のhtmlコード
<div class="container"></div>
<div class="container">
<div id="gallery-photo-container">
<img src="http://imgur.com/60BBDre.jpg">
<div class="gallery-thumbnail-image">
<img src="http://imgur.com/60BBDre.jpg">
<div class="gallery-main-image">
<img src="http://imgur.com/60BBDre.jpg">
</div>
</div>
<div class="gallery-thumbnail-image">
<img src="http://i.imgur.com/C7SFJxy.jpg">
<div class="gallery-main-image">
<img src="http://i.imgur.com/C7SFJxy.jpg">
</div>
</div>
<div class="gallery-thumbnail-image">
<img src="http://i.imgur.com/aa5kiAi.jpg">
<div class="gallery-main-image">
<img src="http://i.imgur.com/aa5kiAi.jpg">
</div>
</div>
<div class="gallery-thumbnail-image">
<img src="http://imgur.com/TWLJOVv.jpg">
<div class="gallery-main-image">
<img src="http://imgur.com/TWLJOVv.jpg">
</div>
</div>
</div>
</div>
絶対的なアプローチ
である私はほとんどトップ属性で絶対位置と位置決めを使用して、それを行っています。しかし、サイズ変更された拡大イメージは、ページの右端から始まる左のコンテナのサイズです。
ここは私のDEMO1とCSSです。
.gallery-thumbnail-image:hover > .gallery-main-image {
visibility: visible;
opacity: 1;
}
.gallery-thumbnail-image {
display: inline-block;
}
#gallery-photo-container .gallery-thumbnail-image > img {
width: 79px;
}
#gallery-photo-container img {
max-width: 100%;
}
.gallery-main-image {
position: absolute;
visibility: hidden;
top: 18px;
left: 18px;
margin-right: 8px;
}
.container {
width: 50%;
}
#gallery-photo-container {
border: 1px solid black;
padding: 10px;
}
相対的なアプローチ
私はそれが下の属性との相対位置と位置決めを使用して、あまりにもそれを行うことができると思います。しかし、ここでの問題は、サムネイル画像コンテナが、ホバー上の拡大された画像サイズにリサイズされていることです。下の属性値は画面サイズに依存します。
このDEMO2では、ジャンプしているためサムネイルをクリックする必要があります。そしてここに相対的なアプローチのCSSがあります。
.gallery-thumbnail-image:hover > .gallery-main-image {
display: block;
opacity: 1;
}
.gallery-thumbnail-image {
display: inline-block;
}
#gallery-photo-container .gallery-thumbnail-image > img {
width: 79px;
}
#gallery-photo-container img {
width: 100%;
}
.gallery-main-image {
position: relative;
display: none;
bottom: 373px;
}
したがって、これらの2つのアプローチのいずれかを使用して応答性の高い方法で対応できますか?あるいは別のアイデアがあるかもしれません。私はあなたの助けを楽しみにしています。
レイアウトを改善するにはさまざまな方法がありますが、 'cursor:pointer;'を追加することをおすすめします。初心者のためのサムネイルに。 – Andy
これは私が探しているものです – dagi12
あなたの答えとしてそれを受け入れてくれてありがとう:) – Andy