据我了解,您需要纵向和横向的不同视口设置。这是可能的,但请彻底测试,因为有怪癖(对不起,没有引号,这是来自个人经验)。
确保您已设置默认视口元标记,并为其指定一个 id。喜欢:
<meta name="viewport" id="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1">
然后添加一点 Javascript 来检测方向的变化并设置正确的视口模式。比如:
window.addEventListener('orientationchange', doOnOrientationChange);
function doOnOrientationChange()
{
var bPortrait = document.documentElement.clientWidth < document.documentElement.clientHeight;
if(bPortrait)
{
document.getElementById("viewport").setAttribute("content","width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1", minimum-scale=1");
}
else
{
document.getElementById("viewport").setAttribute("content","width=900px, user-scalable=yes, maximum-scale=2, minimum-scale=0.25");
}
}
请注意,横向的视口宽度设置为 900 像素。请根据您的网站宽度进行调整。您可能还想将此功能添加到您的文档加载事件列表中,以防有人已经将他的设备置于横向模式;-)
为了检测方向变化,我建议你阅读这篇文章:
http://davidwalsh.name/orientation-change
然后使用媒体查询添加样式表。
由于我猜这两者非常不同,我建议使用两个文件(也许第三个用于常规设置):
<link rel='stylesheet' media='screen and (orientation:portrait)' href='portrait.css' />
<link rel='stylesheet' media='screen and (orientation:landscape)' href=landscape.css' />
但@APAD1 的建议当然也有效。