当前位置: 首页 > 面试题库 >

是否有等效于background-size的图像元素:Cover和Contain?

公冶高义
2023-03-14
问题内容

我有一个包含许多页面和不同背景图片的网站,并且通过CSS显示它们,例如:

body.page-8 {
    background: url("../img/pic.jpg") no-repeat scroll center top #000;
    background-size: cover;
}

但是,我想使用<img>元素在一页上显示不同的(全屏)图片,并且我希望它们具有与上述background-image: cover;属性相同的
属性(图像不能从CSS中显示,它们必须从HTML文档中显示)。

通常我使用:

div.mydiv img {
    width: 100%;
}

要么:

div.mydiv img {
    width: auto;
}

使图片饱满且反应灵敏。但是,width: 100%当屏幕太窄时,图片会缩小太多(),并在底部屏幕上显示主体的背景色。另一种方法,width: auto;只能使图像变为全尺寸,而不响应屏幕尺寸。

有没有一种显示图像的方法background-size: cover呢?


问题答案:

解决方案#1- 对象适合属性缺少IE支持

只需object-fit: cover;在img上进行设置即可。

body {

  margin: 0;

}

img {

  display: block;

  width: 100vw;

  height: 100vh;

  object-fit: cover;

}


<img src="http://lorempixel.com/1500/1000" />

参见MDN-关于object-fit: cover

确定替换内容的大小,以在填充元素的整个内容框时保持其长宽比。如果对象的长宽比与框的长宽比不匹配,则对象将被裁剪以适合对象。

解决方案#2-将背景图片替换为具有CSS的img

body {

  margin: 0;

}

img {

  position: fixed;

  width: 0;

  height: 0;

  padding: 50vh 50vw;

  background: url(http://lorempixel.com/1500/1000/city/Dummy-Text) no-repeat;

  background-size: cover;

}


<img src="http://placehold.it/1500x1000" />


 类似资料:
  • 问题内容: 我有一个包含许多页面和不同背景图片的网站,并且通过CSS显示它们,例如: 但是,我想使用元素在一页上显示不同的(全屏)图片,并且我希望它们具有与上述属性相同的 属性(图像不能从CSS显示,它们必须从HTML文档显示)。 通常我使用: 要么: 使图片饱满且反应灵敏。但是,当屏幕变得太窄时,图片会缩小太多(),并在底部屏幕上显示主体的背景色。另一种方法只能使图像变大,而不响应屏幕大小。 有

  • 问题内容: 在angularjs中,您具有标记ng-src,其目的是在angularjs评估介于和之间的变量之前,不会收到无效网址的错误。 问题是,我使用了一些带有URL设置的DIV 。我之所以这样做,是因为CSS3具有出色的属性,可以将图像裁剪为DIV的确切大小。 唯一的问题是,由于创建ng-src标记的原因完全相同,因此我收到很多错误:我的url中有一些变量,浏览器认为该图像不存在。 我意识到

  • CSS3 新增的 background-size 是一个很有用的属性,用于定义背景图片的尺寸。由于是 CSS3 新增的属性,所以 IE 低版本自然就不支持了,但是作者写了一个 htc 文件,名叫 background-size polyfill,使用该文件能够让 IE7、IE8 支持 background-size 属性。其原理是创建一个 img 元素插入到容器中,并重新计算宽度、高度、left、

  • 问题内容: 我想让div元素延伸到33%的宽度,并在CSS中完成背景图片 如何在mouseover或mouseneter上对div中的背景图像进行动画处理,是否有可以执行此操作的插件?background div必须使用background-size:cover,因为它是一个弹性页面。 我还没有小提琴,因为我不知道从哪里开始或如何开始 问题答案: 对于那些想要破解CSS过渡缩放以应用于背景尺寸的人

  • 问题内容: 我正在配置Java客户端,它的工作是建立与服务器的TLS连接。我想使用以下3种密码配置客户端: 在Java支持的密码套件中,我找到了相同的密码,但是开头是SSL,而不是TLS。问题是,如果我用以下方法配置了客户端: 这两个列表是否完全相同,并且服务器将对其进行解释?我担心是否为客户端配置了密码,这意味着与某些不同,并且可能某些服务器不支持。我如何确定? 问题答案: 是的,它们是相同的。

  • 问题内容: 最近,我遇到了一些Java代码,这些代码简单地将一些字符串放入Java TreeSet中,为其实现了基于距离的比较器,然后在日落时分快乐地计算出给定的分数来解决给定的问题。 我的问题 是否有适用于Python的等效数据结构? Java树集看起来基本上是一个有序字典,可以使用某种比较器来实现这种排序。 我看到有一个用于 OrderedDict的Py3K的PEP,但是我使用的是2.6.x。