首先,我知道我在这里尝试做的是不好的做法,但我真的没有太多选择,所以请不要回答“使页面响应”等。
我有一个应该与移动设备兼容的网站(它是一个 facebook 应用程序)。整个设计基于固定宽度(Facebook 应用程序为 810 像素,移动页面我将其缩减为 520 像素)。减小宽度是我所能做的,使页面具有响应性需要我重写整个 html 和 css 以及一些 javascript,我们同意简单地适应页面就足够了。
现在,我希望这个 520px 的页面始终适合视口宽度(纵向和横向),以在智能手机上跨浏览器和跨操作系统工作。
我尝试使用视口元标记:
<meta name="viewport" content="width=device-width, user-scalable=true;">
但这几乎不适用于任何浏览器,因为每个浏览器似乎对此都有不同的行为。我找到了适用于(或多或少)工作的单个浏览器的解决方案,但在某些浏览器上这似乎根本不可能。
有没有办法使用 CSS 和/或 JavaScript 来实现这一点?
这是我用于测试的 HTML 代码。它只是一个以渐变为背景的 520x2000 像素框。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, user-scalable=true;">
<meta charset="utf-8">
<style type="text/css">
body,html {
margin:0;
padding:0;
}
/* white->blue->black gradient */
.gradient {
background: -moz-linear-gradient(left, #ffffff 0%, #0078b5 50%, #000000 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#ffffff), color-stop(50%,#0078b5), color-stop(100%,#000000)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #ffffff 0%,#0078b5 50%,#000000 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #ffffff 0%,#0078b5 50%,#000000 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, #ffffff 0%,#0078b5 50%,#000000 100%); /* IE10+ */
background: linear-gradient(to right, #ffffff 0%,#0078b5 50%,#000000 100%); /* W3C */
}
</style>
</head>
<body>
<div class="gradient" style="border:3px solid orange;width:520px;height:2000px;">
</div>
</body>
</html>