我在以下 div 中设置了一个背景图,但是这个图被裁剪了:
<div style='text-align:center;background-image: url(/media/img_1_bg.jpg);background-repeat:no-repeat;width:450px;height:900px;' id="mainpage" align="center">
有没有办法显示背景图片而不被裁剪掉?
我在以下 div 中设置了一个背景图,但是这个图被裁剪了:
<div style='text-align:center;background-image: url(/media/img_1_bg.jpg);background-repeat:no-repeat;width:450px;height:900px;' id="mainpage" align="center">
有没有办法显示背景图片而不被裁剪掉?
您可以使用background-size
属性来实现这一点,该属性现在被大多数浏览器支持。
将背景图片缩放以适应div大小:
background-size: contain;
为了使背景图片覆盖整个div:
background-size: cover;
JSFiddle示例或可运行的代码片段:
#imagecontainer {
background: url("http://3.bp.blogspot.com/_EqZzf-l7OCg/TNmdtcyGBZI/AAAAAAAAAD8/KD5Y23c24go/s1600/homer-simpson-1280x1024.jpg") no-repeat;
width: 100px;
height: 200px;
border: 1px solid;
background-size: contain;
}
<div id="imagecontainer"></div>
还存在一个适用于IE 5.5+支持的过滤器,以及一些旧浏览器的供应商前缀。
如果您需要的是图像与 div 具有相同的尺寸,我认为这是最优雅的解决方案:
background-size: 100% 100%;
如果没有的话,@grc的答案是最合适的。
来源: http://www.w3schools.com/cssref/css3_pr_background-size.asp
你可以使用这些属性:
background-size: contain;
background-repeat: no-repeat;
然后你的代码就像这样:
<div style="text-align:center;background-image: url(/media/img_1_bg.jpg); background-size: contain;
background-repeat: no-repeat;" id="mainpage">
background-position-x: center;
background-position-y: center;
你也可以使用这个:
background-size:contain;
height: 0;
width: 100%;
padding-top: 66,64%;
我不知道你的div值是什么,但是假设你已经有了这些值。
height: auto;
max-width: 600px;
再次强调,这些只是随机数字。 如果你想要为div设置背景图(假设你需要),可能很难将其固定宽度,因此最好使用max-width。实际上,用背景图填充div并不复杂,只需确保正确地设置父元素的样式,以便图像有可以放置的位置。
Chris
尝试以下任何一种方法:
background-size: contain;
background-size: cover;
background-size: 100%;
.container{
background-size: 100%;
}
background-size
属性指定背景图片的大小。
您可以使用不同的语法来设置此属性:关键字语法("auto","cover"和"contain"),一个值语法(设置图像的宽度(高度变为“自动”)),两个值语法(第一个值:图像的宽度,第二个值:高度)。
更多信息请参阅:https://www.w3schools.com/cssref/css3_pr_background-size.asp
您还可以尝试这样设置,将背景大小设置为覆盖,并使背景位置居中,以使其看起来更漂亮,如下所示:
background-size: cover;
background-position: center ;
备选方案:
background-size: auto 100%;