我们可以将CSS用于仅比固定大小更宽的图像吗?

时间:2017-08-15 13:13:26

标签: html css wordpress image image-processing

我想添加一种我博客的图像样式,但是,如果我只是使用CSS,那么样式将应用于所有图像。问题是这种风格的小图像(<500px宽)看起来很糟糕。

是否有任何可用的方法(可能是条件CSS)来归档我想要的东西。

2 个答案:

答案 0 :(得分:2)

Afaik没有纯粹的CSS方法可以做到这一点,但使用JavaScript(和jQuery)很容易:

$("img").each(function() {
  if ($(this).width() > 500)
    $(this).addClass("large-img");
});

然后

.large-img {
  /* special styles here */
  ...
}

答案 1 :(得分:1)

在将CSS样式应用于元素子集时,最常用的方法是使用CSS Classes。这些使您能够向浏览器指示您希望将特定样式应用于某些元素。

img.my-style {
  box-shadow: 5px 5px 10px rgba(0,0,0,0.5);
}
<html>
  <body>
    <img src="/images/small.png">
    <img class="my-style" src="/images/large.png">
  </body>
</html>

当然,这要求您能够编辑网站的HTML,但情况并非总是如此。在无法修改HTML的情况下,您可以使用其他CSS选择器来标识要应用样式的元素。

例如,如果您的大图片仅显示在您网站的某个部分内,那么您可以将您的风格应用于该部分内的图片:

#content>img {
  box-shadow: 5px 5px 10px rgba(0,0,0,0.5);
}
<html>
  <body>
    <img src="/images/small.png">
    <div id="content">
      <img src="/images/large.png">
    </div>
  </body>
</html>

您也可以使用width=""属性的值来选择图像,但这可能很麻烦且很脆弱,所以我建议尽可能避免使用它。

img[width=700] {
  box-shadow: 5px 5px 10px rgba(0,0,0,0.5);
}
<html>
  <body>
    <img src="/images/small.png" width="150">
    <img src="/images/large.png" width="700">
  </body>
</html>

不幸的是,据我所知,CSS规则不可能考虑到图像元素的动态大小,因此您需要选择最适合您用例的选项。我已经用“最佳”选项(在我看来)首先订购了它们,在我看来最糟糕的选择(在我看来)。