Chrome上的某些屏幕尺寸背景图片突然消失

时间:2017-10-06 15:57:01

标签: javascript html css google-chrome

在我的网站上,我有一个容器,其中包含一个divs元素,其中包含一个带有背景图像的i元素。这些i元素都具有相同的背景图像,但具有不同的背景位置,因此只需要生成一个http请求,这对于较小的图标通常是最佳实践。 div应该在容器中水平居中。

我的问题是,在Chrome和Firefox浏览器(最新版本)上,背景图像的渲染在某些(宽屏)屏幕尺寸上无法正常工作。特别是在Chrome上,它总是不会显示一些元素background-image,除非元素悬停在Firefox上,它根本不会渲染背景图像。

如果我将float: left添加到容器内的divs,则解决了渲染问题。但是我希望元素在容器中居中,而左边的浮子不起作用。

我的问题是我在做什么导致某些浏览器出现此行为,我该如何解决?

您可以自己查看此问题:

http://staging.koreanbuilds.net

以下是Chrome Chrome behaviour和Firefox enter image description here

上的行为的屏幕截图

这是容器和元素的css代码:

/* Container of clickable champion icons */
#champContainer {
    width: 100%;
    padding-right: 10px;
    padding-left: 10px;
    text-align: center;
    position: relative;
}

/* Champion images div container class */
.champIcon {
    width: 65px;
    height: 65px;
    margin: 1px auto;
    overflow: hidden;
}

.champIcon i {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
}

.champIcon i:hover {
    zoom: 1.05;
    cursor: pointer;
    -moz-transform:scale(1.05);
    -moz-transform-origin: 0 0;
}

此外,div还有这两个类中的一个

.nodisplay {
    display: none;
}

.yesdisplay {
    display: inline-block;
}

i元素始终具有以下类

.chmp {
    display: inline-block;
    overflow: hidden;
    text-indent: -9999px;
    text-align: left;
    cursor: pointer;
}

以及定义背景图像和位置的类,例如

.chmpashe {
    background-image: url(http://statics.koreanbuilds.net/champion_65x65/sprite.png);
    background-position: 0 -455px;
    width: 65px;
    height: 65px;
}

1 个答案:

答案 0 :(得分:1)

我没有发现您的代码有任何问题。看起来这可能与您看到here的问题相同,因为我似乎无法在Firefox上加载您的spritesheet

可能值得削减你的精灵表并测试它是否有效。

希望有所帮助!

编辑:

查看您的实际网站,您有一个更传统的形状样式表,在以太维度上不超过1000像素。它看起来像你在升级时使用的那个超过80,000像素,这看起来就像你的问题所在。