gpt4 book ai didi

css - 响应式 css Sprite + 视网膜

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:19 27 4
gpt4 key购买 nike

最近几天我阅读了很多关于这个主题的内容,但我没有找到解决方案。我有两个 sprite 集,一个是低质量的正常显示,另一个是高质量的视网膜显示。

我的问题是,我的网站必须响应,图形应根据浏览器窗口调整大小。但是对于 background-size 属性,我似乎无法告诉浏览器调整 Sprite 的大小。这是我到目前为止得到的:

#logo-img {
max-width: 100%;
text-indent: -9999px;
height: 85px;
width: 360px;
background-image: url('/images/sprites-sa026cef942.png');
background-position: 0 -2609px;
background-repeat: no-repeat;
overflow: hidden;
outline: 0 none !important;
display: block;
white-space: nowrap;
}
@media (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3 / 2), (min-device-pixel-ratio: 1.5) {
#logo-img {
background-image: url('/images/sprites-retina-se61e802cf4.png');
background-position: 0 -2601px;
-webkit-background-size: 360px, auto;
-moz-background-size: 360px, auto;
-o-background-size: 360px, auto;
background-size: 360px, auto;
}
}

HTML 是

<a href="#" id="logo-img">
<h1>My logo text</h1>
</a>

一切正常,但在移动设备上或调整浏览器窗口大小时除外。 Logo 被剪切,并且不会根据浏览器窗口调整大小。我正在玩 max-width: 100%;height: auto; 但这只会影响轮廓,不会影响内部的 Sprite 。

希望有人知道解决方案。它不必与 IE8 兼容,但它会很好 ;)

编辑在使用 sprites 之前,我使用 background-size: contain; 来确保背景图像的大小调整为元素的大小:

#logo-img {
background:url(../images/sprites-retina/logo.png) no-repeat center center;
background-size: contain;
max-width: 100%;
text-indent:-9999px;
height: 85px;
width: 360px;
overflow: hidden;
outline: 0 none !important;
display: block;
white-space: nowrap;
}

这很有效,但是我不能使用 spritesheet。也许这就清楚了我的意思。

EDIT2

我做了一个 fiddle http://jsfiddle.net/euvRD/2/

最佳答案

我认为您需要从 background-size 行中删除逗号,并且您可能还想将高度设置为 85px:

-webkit-background-size: 360px 85px;
-moz-background-size: 360px 85px;
-o-background-size: 360px 85px;
background-size: 360px 85px;

但我认为逗号是这里的主要问题。对你有帮助吗?

关于css - 响应式 css Sprite + 视网膜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12599071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com