使用 bootstrap 网站创建器 jetstrap,我创建了一个简单的网站,其中的横幅图像可以拉伸窗口的大小。问题是拉伸的图像上有一个徽标,并且在调整窗口大小时,图像会变形和拉伸。
我发现这个线程很好地描述了这个问题,我试图用 background-size: contains 更改 css 似乎不起作用。
任何建议表示赞赏。
谢谢!
使用 bootstrap 网站创建器 jetstrap,我创建了一个简单的网站,其中的横幅图像可以拉伸窗口的大小。问题是拉伸的图像上有一个徽标,并且在调整窗口大小时,图像会变形和拉伸。
我发现这个线程很好地描述了这个问题,我试图用 background-size: contains 更改 css 似乎不起作用。
任何建议表示赞赏。
谢谢!
亚历山大·德索萨(Alexander De Sousa)非常喜欢它,但这里有一些针对您的示例的特定代码:
在您的文件中,您有一个<img>
标签,您绝对可以使用它width:100%
来拉伸屏幕的大小。这是代码位:
<img class="jetstrap-selected jetstrap-highlighted" id="backimage" src="https://s3.amazonaws.com/media.jetstrap.com/Nd7Z0DbqQ4eNN2cV05DI_background.png">
它位于一个名为“carousel”的类名的 div 容器中。
<div id="myCarousel" class="carousel slide" data-pause="remove">...</div>
控制此元素的 CSS 位于您在上面下载时提供的 HTML 页面的底部。影响此元素的相关 CSS 是:
.carousel img {
position: absolute;
top: 0;
left: 0;
min-width: 100%;
height: 500px; /* THIS IS THE PROBLEM */
background-size: contain;
}
正如您在上面的 CSS 中看到的,它设置了一个非常具体的高度值。这会降低背景图像的纵横比。这意味着,当使用 时min-width:100%;
,以像素为单位的实际宽度会随屏幕大小而变化。
如果屏幕为 1000 像素宽,则您的图像为 1000 像素宽。如果你把它缩小到 875px,你的图片就是 875px。
此时,您的高度始终保持在 500px。所以你的背景图片,它使用带有相当大的方形“标志”图像的图案背景,实际上被 CSS 请求扭曲了。
因为在某一时刻它是1000px / 500px
,而在另一时刻它是875px / 500px
。
当然,也涉及到媒体查询。在不同的屏幕尺寸下,高度值设置为特定值。
我认为您正在尝试使用带有徽标的平铺背景图像,该徽标可以响应地调整其大小/定位(即屏幕大小)。
你会想要考虑做更多这样的事情:
<div id="#background">
<img src="myLogo.png" alt="" />
</div>
这个容器将作为你的背景。我会把它放在你的<div id="myCarousel">...</div>
元素结束之前。
从那里,您定位该容器并用重复的背景填充它(或者您可以添加另一个响应图像来缩放它):
#background{
position:absolute;
top:0;
left:0;
width:100%;
height:500px; /* You can set a specific height here, so it covers your content */
background: url(myBackground.png) repeat 50% 50%; /* if you don't want your background to distort, use a tiled background */
}
使用“徽标”,您可以根据需要将其绝对定位在您的背景容器中。
#background img{
position:absolute;
top:10em;
right:20%;
width:200px; /* Or use a % to scale the logo fluidly */
}
使用媒体查询,您可以根据屏幕大小的需要调整徽标的位置。
这种技术使您的背景图像保持一致,因此它不会缩小/扩大渐变。相反,背景将随着屏幕尺寸的变化而裁剪。如果您更喜欢缩放背景,您可以简单地在背景容器中添加另一个 img 并使用 CSS 类或 ID 适当地标记它们并应用样式。
<div id="#background">
<img id="myBgLogo" src="myLogo.png" alt="" />
<img id="myBgFill" src="myBackground.png" alt="" />
</div>
然后只需专门针对图像并将它们分层,为背景提供 100% 的宽度和高度。
我希望这会有所帮助!
.background img {
min-width: 100%;
max-width: 100%;
height: auto;
}
为了使图像保持成比例,您可以设置任何您喜欢的宽度,但请确保您已将高度指定为自动。
可能值得分享您正在处理的网站的链接
问题是为图像定义一个大于图像纵横比的特定高度。您将需要删除高度定义或将图像更改为绝对定位的 div 的背景,以使其扩展到视口之外。