【问题标题】:CSS border on image thumbnails affects all images on page图片缩略图上的 CSS 边框会影响页面上的所有图片
【发布时间】:2013-12-07 03:05:07
【问题描述】:

所以我正在使用 Lightbox2 创建一个画廊。我把所有的图片放在“div class="container" 然后enter code here我用CSS在照片的缩略图周围添加了一个边框。我给了它静态属性和悬停时的属性。

这是我用来设置 Lightbox2 的 HTML:

<a href="images/work/cardrawing.jpg" data-lightbox="drawing" title="subaru drawing"><img src="images/work/thumbnails/cardrawing_thumb.jpg" /></a>

效果很好。然后我将以下代码添加到“lightbox.css”文件的底部以赋予它特定的属性:

a img{border:5px solid #cccccc;} a:hover img{border:5px solid #0b6f8a;}

这也很有效,但是,它影响了我网站上具有锚定链接或任何其他内容的所有其他图像。几乎所有的图像一般。将所有内容分类为仅影响某些图像的最佳方法是什么?

【问题讨论】:

  • 影响特定图像的最佳方式是为该图像分配一个id,然后在您的CSS 中定位该特定id。或者,如果您有一组图像都应该具有相同的 CSS,则为它们分配相同的 class
  • @DrydenLong 这不是最好的方法;这将要求每张图片都有一个 ID,并且在 CSS 中有一长串选择器。
  • @popnoodles 我同意,我的评论是为了告知 OP 设置单个图像的样式。然后我补充说他应该使用类来设置元素组的样式。

标签: css image border lightbox2


【解决方案1】:

您需要更具体地使用 CSS。您的图像具有类灯箱。

<a...><img class="lighbox" ... /></a>

所以你会使用

a img.lighbox{...}

a img.lighbox:hover{...}

【讨论】:

  • 应将灯箱错字改为灯箱以与描述一致
【解决方案2】:

您应该使用 ID 或类。设置特定的img 标签,就像这样:

<a href="images/work/cardrawing.jpg" data-lightbox="drawing" title="subaru drawing">
    <img class="hoverImage" src="images/work/thumbnails/cardrawing_thumb.jpg" />
</a>

然后在你的 CSS 中你可以使用:

a img.hoverImage{
    border:5px solid #cccccc;
} 
a img.hoverImage:hover{
    border:5px solid #0b6f8a;
}

然后,如果需要,您可以为每个图像设置特定的属性/悬停。

【讨论】:

  • a img .hoverImage 永远不会针对任何东西
  • 这不起作用。现在任何图片都没有任何反应。我创建了一个类 .gallery 并将其应用于我的图像:&lt;a href="images/work/cardrawing.jpg" data-lightbox="drawing" title="subaru drawing"&gt;&lt;img class="gallery" src="images/work/thumbnails/cardrawing_thumb.jpg" /&gt;&lt;/a&gt; 然后我编辑了我的 CSS 以匹配:a img .gallery{ border:5px solid #cccccc; } a:hover img .gallery{ border:5px solid #0b6f8a; } 我做错了吗?
  • 抱歉,:hover 实现错误。我修复了上面的代码。
  • 实施错误是什么意思?我的代码中是否有错误的位置?
  • 这是基本的Jfiddle 代码。将a img .gallery 更改为a img.gallery,将a:hover img .gallery 更改为a img.gallery:hover
【解决方案3】:

您需要按类别定位图像

HTML:

<a href="images/work/cardrawing.jpg" data-lightbox="drawing" title="subaru drawing">
    <img class="lightbox" src="images/work/thumbnails/cardrawing_thumb.jpg" />
</a>

CSS:

img.lightbox { 
    border:5px solid #cccccc; 
} 

a img.lightbox:hover { 
    border:5px solid #0b6f8a; 
}

【讨论】:

  • 在这种情况下,因为您要设置图片库,所以您不会使用 ID 来定位图片,因为 ID 特定于单个 html 元素。这在技术上是可行的,但您需要在 CSS 中引用每个特定的 img ID,这会使其变得不必要地长。使用一个类,您可以使用一个类定位所有图库图像,并且只需要在 CSS 中引用它们一次。
猜你喜欢
  • 2011-05-08
  • 2013-05-31
  • 2015-09-22
  • 2012-05-20
  • 2016-05-23
  • 1970-01-01
  • 2019-07-18
  • 2012-03-13
  • 1970-01-01
相关资源
最近更新 更多