【问题标题】:Force a larger image (from a sprite) fits in a smaller div?强制较大的图像(来自精灵)适合较小的 div?
【发布时间】:2016-06-13 03:41:49
【问题描述】:

我有一个大小为 1030px-510px 的大图像(图像精灵),其中包含两个小图像 (515px-515px)。
我想从精灵中获取两个小图像并为两个<img> 标签设置背景。我正在使用此代码:

.img-1, .img-2 {
  width: 515px;
  height: 515px;
  background: url(http://i.stack.imgur.com/aozNS.png) no-repeat;
}

.img-1 {
  background-position: 0px 0px;
}

.img-2 {
  background-position: -515px 0px;	
}
<div class="col-sm-6">
  <img class="img-1">
</div>
<div class="col-sm-6">
  <img class="img-2">
</div>

但是这两个图像比我的两个 div (class="col-sm-6") 大。那么,有什么方法可以将我的两个小图像放入我的两个 div 中?
我不想将我的两个 div 更改为更大的 (class="col-sm-7")。

【问题讨论】:

  • 为什么使用 元素作为背景?这不是 s 的用途。

标签: html css


【解决方案1】:

在图像上设置像素特定的宽度和高度将使它们占据确切的空间。引导 cols 具有响应性,因此它们会根据指定的 col 编号(例如 col-6 或 col-4)调整其大小以适应空间。

如果我正确理解了您的问题,那么您的问题是您需要删除图像上的 512px 宽度和高度 css 属性并改用 width: 100% 。图像将调整其宽度以适合容器,高度应调整以适合宽度。

[编辑] - 没关系,仅当它是使用 src 加载而不使用 css 背景属性的图像时才有效。您可能要考虑这样做。如果您绝对必须这样做,那么您可以像其他答案一样保持较小的固定尺寸,或者尝试使用 flexbox 之类的东西来让图像适应尺寸。

【讨论】:

  • 感谢您的回答。但它不起作用。我不知道为什么。 :(
  • 为什么需要使用背景图片属性?如果您使用 src 加载,则可以利用图像标签的默认适应性
  • 因为我想在用户将鼠标悬停在该图像的某个区域上时更改背景。不幸的是,515px 不适合 div(class="col-sm-6")。但是使用 400px,效果很好。
  • 好的,所以我想我找到了一个解决方法,您可以在其中获得按比例缩放的图像,但允许您使用 css 设置背景图像。然而,它有点像黑客。例如,您需要使用具有所需比例 (512x512) 的透明 png 图像,然后将其用作 src 属性。然后使用 css 背景属性更改实际图像。这是一个例子:jsfiddle.net/animakuz/9d7cganr
  • 顺便说一句,我没有在示例中设置它,因为图像与 png 的比例不同,但是如果您希望背景缩放以适合框,则需要设置 background-size: 100%或者因为你使用精灵到 200%。
【解决方案2】:

您必须将 background-size 设置为 200%(对于 2 张图像),并以百分比指定 background-position

.img-1, .img-2 {
  width: 100px;
  height: 100px;
  background: url(http://i.stack.imgur.com/aozNS.png) no-repeat;
  background-size: 200%;
}

.img-1 {
  background-position: 0 0;
}

.img-2 {
  background-position: 100% 0;	
}
<div class="col-sm-6">
  <img class="img-1">
</div>
<div class="col-sm-6">
  <img class="img-2">
</div>

【讨论】:

  • 问题是我的 div (class="col-sm-6") 小于我的两个图像(宽度:515px,高度:515px)。所以,它不起作用。 :(
  • @user3089480 还将background-size 设置为200%
  • 感谢您的回答。但它不起作用。它伸展了。 :(
  • @user3089480 你能在你的问题中添加一个代码 sn-p 吗?
  • .img-1, .img-2 { 宽度:515px; /*100px 工作正常*/ height: 515px; /*100px 工作正常*/ background: url(images/large-sprite.jpg) no-repeat;背景大小:200%; } .img-1 { 背景位置:0 0; } .img-2 { 背景位置:100% 0; }
猜你喜欢
  • 2013-09-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-29
  • 2013-08-09
相关资源
最近更新 更多