#html #css #image #image-gallery
Вопрос:
Я пытаюсь создать фотогалерею на этой странице:
http://cosimocode.com/wtnowork.html
.gallerycontainer{
position: relative;
/*Add a height attribute and set to largest image's height to prevent overlaying*/
}
.thumbnail img{
border: 1px solid white;
margin: 0 5px 5px 0;
}
.thumbnail:hover{
background-color: transparent;
}
.thumbnail:hover img{
border: 1px solid blue;
}
.thumbnail span{ /*CSS for enlarged image*/
position: absolute;
background-color: lightyellow;
padding: 5px;
left: -1000px;
border: 1px dashed gray;
visibility: hidden;
color: black;
text-decoration: none;
}
.thumbnail span img{ /*CSS for enlarged image*/
border-width: 0;
padding: 2px;
}
.thumbnail:hover span{ /*CSS for enlarged image*/
visibility: visible;
top: 1000px;
left: 300px; /*position where enlarged image should offset horizontally */
z-index: auto;
}
<div align="center">
<div class="gallerycontainer">
<a class="thumbnail" href="#thumb">
<img src="/images/jjb01a.jpg" title="Huey 'Piano' Smith" width="100px" border="0" />
<span><img src="/images/jjb01a.jpg" /></span>
</a>
<a class="thumbnail" href="#thumb">
<img src="/images/jjb02.jpg" title="Archibald" width="100px" border="0" />
<span><img src="/images/jjb02.jpg" /></span>
</a>
<a class="thumbnail" href="#thumb">
<img src="/images/jjb03.jpg" title="James LaRocca amp; John Broven" width="100px" border="0" />
<span><img src="/images/jjb03.jpg" /></span>
</a>
<a class="thumbnail" href="#thumb">
<img src="/images/jjb04.jpg" title="Cosimo Recording" width="100px" border="0" />
<span><img src="/images/jjb04.jpg" /></span>
</a>
<a class="thumbnail" href="#thumb">
<img src="/images/jjb05.jpg" title="Cosimo Matassa" width="100px" border="0" />
<span><img src="/images/jjb05.jpg" /></span>
</a>
</div>
</div>
и т.д…
Я хотел бы центрировать изображение, увеличенное при наведении миниатюры, в родительском контейнере страницы размером 660 пикселей, а не присваивать ему абсолютное положение сверху: и слева: px, которое, похоже, каким-то образом превышает заданную ширину контейнера… имеет ли это смысл? Я упускаю что-то очень очевидное? Я пытался изменить z-индекс и т. Д., Но безрезультатно.
Есть какие-нибудь идеи?? большое спасибо!!
Ответ №1:
Если вы хотите добиться этого без установки определенного верхнего и левого значения для центрирования изображения.
Вы должны добавить a position: relative
в родительский контейнер. Затем измените атрибут top
и left
.thumbnail:hover span
на 0
, а также добавьте a right: 0
. Чтобы центрировать absolute
расположенный div (который является увеличенным изображением), добавьте margin: 0 auto
. И, наконец, установите ширину этого элемента max-content
равным .
CSS:
.gallerycontainer {
position: relative;
}
.thumbnail:hover span {
visibility: visible;
top: 0;
left: 0;
right: 0;
z-index: auto;
margin: 0 auto;
width: max-content;
}
Комментарии:
1. СПАСИБО ТЕБЕ, МОЙ ДРУГ!! Это было добавление позиции: абсолютной; к интервалу наведения, которое, наконец, сделало это!
2. @RedKelly Не забудьте проголосовать и принять 😉
3. @RedKelly Просто нажмите на галочку и стрелку вверх