css 有没有办法在图像上定位链接文本?

dzhpxtsq  于 2022-12-27  发布在  其他
关注(0)|答案(2)|浏览(142)

我创建了一个不同高度和长度的图像网格。我想用缩放动画在每个图像上放置一个链接到另一个网站的文本。
我试着把链接放在一个由div包围的锚标记中。然而,即使文本出现在图像容器中,链接也不起作用。下面是我的代码:

.container{
    display:grid;
    grid-template-columns: repeat(6,1fr);
    grid-auto-rows:100px 300px;
    grid-gap:10px;
    grid-auto-flow: dense;
}

.gallery-item{
    width:100%;
    height:100%;
    position:relative;
}

.gallery-item .image{
    width:100%;
    height:100%;
    overflow:hidden;
}

.gallery-item .image img{
    width:100%;
    height:100%;
    object-fit: cover;
    object-position:50% 50%;
    cursor:pointer;
    transition:.5s ease-in-out;
}
.gallery-item:hover .image img{
    transform:scale(1.1);
}

.gallery-item .text{
    opacity:0;
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    color:#fff;
    font-size:25px;
    pointer-events:none;
    z-index:4;
    transition: .4s ease-in-out;
    -webkit-backdrop-filter: blur(1px) saturate(1.8);
    backdrop-filter: blur(1px) saturate(1.8);
}

.gallery-item:hover .text{
    opacity:1;
    animation: move-down .3s linear;
    padding:1em;
    width:100%;
}

.w-1{
    grid-column: span 1;
}
.w-2{
    grid-column: span 2;
}
.w-3{
    grid-column: span 3;
}
.w-4{
    grid-column: span 4;
}
.w-5{
    grid-column: span 5;
}
.w-6{
    grid-column: span 6;
}

.h-1{
    grid-row: span 1;
}
.h-2{
    grid-row: span 2;
}
.h-3{
    grid-row: span 3;
}
.h-4{
    grid-row: span 4;
}
.h-5{
    grid-row: span 5;
}
.h-6{
    grid-row: span 6;
}



@media screen and (max-width:500px){
    .container{
        grid-template-columns: repeat(1,1fr);
    }
    .w-1,.w-2,.w-3,.w-4,.w-5,.w-6{
        grid-column:span 1;
    }
}

@keyframes move-down{

    0%{
        top:10%;
    }
    50%{
        top:35%;
    }
    100%{
        top:50%;
    }
}
<section id="featured-blogs" class="section-p1">
<h3 style="text-align:center">FEATURED</h3>
<br>

<div class="container">

  <div class="gallery-container w-3 h-2">
    <div class="gallery-item">
      <div class="image">
        <img src="images/picture.jpg" alt="nature">
      </div>
      <div class="text"><a href="nature.jpg">Nature</a></div>
    </div>
  </div>

我是新的HTML和CSS,所以请回答问题的方式初学者可以理解。

piah890a

piah890a1#

如果我没理解错的话,你的链接不起作用是因为你的CSS有.gallery-item .text {pointer-events:none}。要么删除指针事件规则,要么添加a {pointer-events:auto}

hgqdbh6s

hgqdbh6s2#

对于链接,需要使用元素a(doc:锚定元素):

<a href="https://dummyimage.com" class="zoom">
  <img src="https://dummyimage.com/600x400/000/fff" alt="nature">
</a>

(It存在使用JS和"onClick"事件的其他解决方案,如果您对此感兴趣,可以检查此question
对于缩放,我从我的答案复制过去我的代码,并添加到您的代码:

/*ADDED*/
 .zoom {
  transition: transform .2s; /* Animation */
}

.zoom:hover {
  transform: scale(1.5); /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */
  position:absolute;
  right:0;
}

演示

一个二个一个一个

相关问题