Javascript 在没有';不支持大众或vh属性?
我正在使用CSS3属性,例如VW VH。我需要知道不支持CSS3的旧手机浏览器的影响。 我正在使用VH设置div的高度Javascript 在没有';不支持大众或vh属性?,javascript,html,css,Javascript,Html,Css,我正在使用CSS3属性,例如VW VH。我需要知道不支持CSS3的旧手机浏览器的影响。 我正在使用VH设置div的高度 .block{ height : 50vh; width : 50vw; } <div class="block"> //do some thing.... </div> .block{ 高度:50vh; 宽度:50vw; } //做点什么。。。。 我知道你的痛苦 在不支持vw或vh的移动浏览器上,属性将被忽略,默认为继承块元
.block{
height : 50vh;
width : 50vw;
}
<div class="block">
//do some thing....
</div>
.block{
高度:50vh;
宽度:50vw;
}
//做点什么。。。。
我知道你的痛苦
在不支持vw
或vh
的移动浏览器上,属性将被忽略,默认为继承块元素的宽度并在高度
上折叠,而在内联块元素上,宽度
和高度
都设置为折叠
使用vw
单位,为了兼容性,您可以轻松地将它们切换为%值,但百分比高度单位永远不会按预期工作
在PhoneGap、Cordova甚至我的针对Android用户的网站中,我使用了一个“polyfill”(使不受支持的样式“工作”的代码)以及我的vw
和vh
单元来支持Android 4.3 Jellybean及以下版本:
function orient() {
var ua = navigator.userAgent;
if(ua.indexOf('droid 4.3') == -1 && ua.indexOf('droid 4.2') == -1 && ua.indexOf('droid 4.1') == -1 && ua.indexOf('droid 4.0') == -1 && ua.indexOf('droid 2.') == -1) {
//This version of Android supports vw and vh units!
} else {
//Polyfill!
var w = window.innerWidth, h = window.innerHeight;
//Examples:
elem.style.width = (w*.94)+'px'; //width: 94vw
elem.style.height = (h*.94)+'px'; //height: 94vh
elem2.style.height = (w*.5)+'px'; //height: 50vw (Opposite viewport unit! % doesn't support that!)
}
}
window.onresize = function() { window.setTimeout(orient,50); }
window.onresize();
我喜欢Javascript,因为它不会弄乱我的CSS代码,如果浏览器兼容,它也不会执行。比百分比单位好,对吗
希望这个(或它的一个版本)对你的项目有帮助 它只会忽略属性。有趣的是,如果您使用vmax safari,则默认为vw。@Rob Yup。我过火了,那是我的错。我编辑了块元素和内联块元素的默认行为,包括宽度和高度。@Aaron Gillion感谢提供信息…为我提供完整帮助。。根据我的理解(如果我错了,请澄清)。我用的是大众和vh。如果broswer不支持,我们应该查找设备或版本。视情况而定,我们必须更改您的上述代码。如果是。。如何在全球范围内实现上述方法。。如果错了。。请帮助我理解…@shamil您必须找出哪些iPhone版本不支持vw/vh。最大的问题是出于安全原因,苹果不再在
userAgent
中披露iOS版本,因此实际上没有办法确定。然而,没有必要担心,因为98%的iPhone市场份额支持vw/vh单元。Android是什么情况???@shamil我上面的代码示例涵盖了整个Android范围。