- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
元标记“viewport”让我可以设置网站的初始比例,但如果用户随后翻转设备的方向,这会变得很奇怪。
例如,如果我将比例设置为 800x380,而用户以纵向模式打开网站,这个比例显然是错误的,当用户旋转 90 度时,网站最终更像是 1650 宽。
我如何设置视口(viewport),如果设备一开始是横向的,它是 800x380,如果它是纵向的,它是 380x800?
最佳答案
要检测方向变化,请将事件监听器附加到窗口:
window.addEventListener('orientationchange', updateOrientation, false);
在 updateOrientation 函数中,您可以检测设备的方向并相应地重置视口(viewport)属性:
function updateOrientation() {
if (!(navigator.userAgent.match(/iPhone/i)) && !(navigator.userAgent.match(/iPod/i))) {
return;
}
var viewport = document.querySelector("meta[name=viewport]");
switch (window.orientation) {
case 0: //portrait
//set the viewport attributes to whatever you want!
//For Ex : viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, user-scalable=1;');
break;
case 90: case -90: //landscape
//set the viewport attributes to whatever you want!
break;
default:
//set the viewport attributes to whatever you want!
break;
}
}
关于android - 如何设置视口(viewport),使其根据方向为 380x800 或 800x380?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199495/
这更多的是一种好奇心。在开发多语言 Web 应用程序时,我注意到 block 元素末尾的某些字符(如标点符号 (!?.;,))会被渲染为好像它们被放置在开头,而不是当书写方向为从右到左时(因为我不会说
在 Chrome 上,即使没有边距也没有内容。 有关示例,请参阅 https://jsfiddle.net/ht3drjae/2/ .我希望看到没有绿色背景颜色和水平滚动条,因为内部和外部应该具有相同
当主体方向为 rtl 时,div 的 scrollLeft 属性似乎在不同的浏览器中返回不同的值。 这里可以看到一个例子 - http://jsfiddle.net/auVLZ/2/ body { d
我有一些文本在末尾带有大括号部分,包含的 div 具有 Css 属性 direction: rtl;。这会导致右大括号作为左大括号出现在句子的开头。 所以 Some text with (braces
如果您为 CCD 以非 native 方向拍摄 JPEG 图片,大多数相机都不会费心旋转原始图像。他们只是(懒惰地)修改 EXIF 元数据中的 Orientation 值并让图像查看器处理它。您可以通
所以我试图在一个 flex 容器中放置 3 个具有相同高度和宽度的 flex 元素。我成功地使 3 个 flex 元素具有相同的宽度。但是,第一个 flex-item 有一个 div (.images
当前布局: 嗨,我用 flexbox 做了一个布局,它被设置为 flex-direction: row; 然后它排列 (1.left) (2.right) (3 .left)(4.right),我将
我想以相反的顺序水平显示元素,左对齐 这是我的工作 fiddle ,但元素右对齐。 #main { width: 400px; height: 400px; border: 1
我是一名优秀的程序员,十分优秀!