html背景图像在桌面浏览器上显示正确,而不是在移动设备上

时间:2013-08-21 18:01:26

标签: html css3 mobile-website

我有固定位置菜单项的背景图像。 它们在桌面浏览器上显示正确,但在移动浏览器上显示时会变得拉伸并仅显示图像的中心部分,并且图像大小约为原始大小的4倍。

我尝试过设置背景尺寸:封面!重要;强制大小填充容器,但这也没有效果。

我知道在移动设备上使用固定定位和视口存在问题,但我尝试将元素设置为相对定位而没有效果。

HTML: 头:

<meta name="viewport" content="user-scalable=no, initial-scale=1.0" />

菜单:

<ul id="shortcuts" role="complementary" class="children-tooltip tooltip-right lulus">
<li class="current"><a href="/Home" class="shortcut-dashboard" title="Home">Home</a></li>
<li><a href="/Calendar" class="shortcut-agenda" title="Events">Events</a></li>
</ul>

的CSS:

#shortcuts {
display: none;
position: fixed;
z-index: 998;
top: 44px;
left: 10px;
margin: 0;
width: 240px;
list-style-type: none;
padding: 15px 4px 5px 14px;
*padding-bottom: 25px;
border: 1px solid white;
background: #d9d9d9 url(../img/old-browsers/style/bg_shortcuts.png) repeat-x;
-webkit-background-size: 100% 100%;
-moz-background-size: 100% 100%;
-o-background-size: 100% 100%;
background-size: 100% 100%;
background: -webkit-gradient(linear, left top, left bottom, from(white), to(#d9d9d9));
background: -webkit-linear-gradient( white, #d9d9d9 );
background: -moz-linear-gradient( white, #d9d9d9 );
background: -ms-linear-gradient( white, #d9d9d9 );
background: -o-linear-gradient( white, #d9d9d9 );
background: linear-gradient( white, #d9d9d9 );
-webkit-background-clip: padding-box;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 0 1px 7px rgba(0, 0, 0, 0.8);
-moz-box-shadow: 0 1px 7px rgba(0, 0, 0, 0.8);
box-shadow: 0 1px 7px rgba(0, 0, 0, 0.8);
}
#shortcuts > li {
    width: 70px;
    height: 70px;
    float: left;
    margin: -5px 10px 25px 0;
    }
.shortcut-dashboard { margin-left:0px !important; /*padding-bottom:65px; width:70px !important;*/ background-image: url(../img/standard/icons/Home_Icon.png) !important; background-position:center center !important; background-size:cover cover !important; }
.shortcut-agenda { margin-left:0px !important; /*padding-bottom:65px; width:70px !important;*/ background-image: url(../img/standard/icons/Calendar_Icon.png) !important; background-position:center center !important; }

我无法弄清楚为什么背景图片会被拉伸,只能在移动浏览器上使用。这是我的背景图片表现不佳的唯一地方。任何帮助都会很好......我不反对对这些行为不端的孩子进行体罚!

2 个答案:

答案 0 :(得分:0)

引自“HTML / XHTML第6版权威指南”:

“HTML和XHTML文档最近可能会出现在最奇怪的地方,例如 就像在手机上一样。为了帮助浏览器找出呈现文档的最佳方式, 在标记中包含media属性。该属性的值为 文档的预期媒介,但不排除其他人的渲染 媒体。默认值为screen(计算机显示)。其他值包括tty(文本 只有),电视(电视),投影(剧院),手持(PDA和手机),打印 (纸上墨水),盲文(触觉设备),浮雕(盲文打印机),听觉(音频; 例如,语音合成)和所有(许多不同类型的媒体)。 如果要显式列出几种类型的媒体,而不是指定all,请使用a 引号括起的,以逗号分隔的媒体类型列表作为媒体的值 属性。例如: 告诉浏览器您的文档包含用于打印和计算机的CSS 显示器。 请注意指定媒体,因为浏览器无法应用您定义的样式 除非文档在您指定的某个媒体上呈现。就这样 浏览器不会应用我们为media =“screen,print”设计的示例样式集 例如,如果用户使用手持计算机连接到Web。 如何在不创建的情况下为不同的媒体创建不同的样式定义 多份文件? CSS2标准允许您定义特定于媒体 样式表通过它扩展到@import at-rule并通过@media atrule, 我们将在本章后面的8.1.5节中描述。​​“

PS,尝试让你的代码更相对:而不是使用'px',指定百分比值。

答案 1 :(得分:0)

我对这个人不好,伙计们。我有一个CSS文件,它将背景大小覆盖到预定的像素大小。我从CSS文件中删除了这个属性,一切都很好。

另外,有没有人知道允许我从移动浏览器查看页面CSS的任何应用程序或插件?类似于内置桌面浏览器的开发人员工具栏?这会让我很头疼......