为什么当我将<img>
的宽度和高度都设置为400 px时,图像完全是正方形的,但是当我使用<div>
然后将background-image
应用于它并在那里设置相同的大小时,图像是不成比例的,并且只有当我设置width: 1600px
和height: 400px
时,它才变成正方形?
如何正确设置background-image
的大小,使其成为正方形,就像<img>
一样?
我把这个添加到背景图片中,但它不起作用:
background-position: center;
background-repeat: no-repeat;
background-size: cover;
width: 400px;
height: 400px;
字符串
这是我的小提琴:https://jsfiddle.net/vwe6hsn9/6/(尝试注解掉宽度和高度,图像消失)。
我还想有一个background-color
的情况下,图像不会加载的用户,使他们知道这里应该是一个图片。但它也不可见,如果你删除的图像。
2条答案
按热度按时间ssm49v7z1#
1.当我们设置
background-size: cover;
时,它指示浏览器缩放背景图像,同时保持其宽高比以覆盖整个容器。这可能导致图像无法以原始尺寸显示,从而导致失真。1.正如@Brett Donald提到的,我们不能只使用
background-size: 400px 400px;
而不添加width
和height
,因为当你删除div的width和height时,它会消失,因为它是空的;它不包含任何东西;它会缩小到零width和零height的大小
1.此外,如果你有任何元素(例如text)旁边的元素包含一个
background-image
,我建议使用flex-shrink: 0;
,因为这是一种方法,以防止background-image
收缩时,其容器小于background-image
的大小。所以,如果我们希望
background-image
是400x400
,我们可以做下一个:字符串
rekjcdws2#
尝试将这些值赋予 img 样式,使其填充整个屏幕:
字符串
请注意,如果您想使用背景图像,请尝试以下操作:
型