同样的问题让我步履蹒跚。我没有找到任何 css 解决方案或解决方法来解决问题。
但是,如果您可以使用 JQuery(或几乎是 JavaScript),我有一些代码可以用来解决它。
var viewportHeight = $(window).height();
var viewportWidth = $(window).width();
$('body,html').css("height",viewportHeight); //if vh used in body/html too
$('.someClass').css("height",viewportHeight*0.12);// or whatever percentage you used in vh
$('#someId').css("width",viewportWidth*0.12);
嗯,这只是一个例子,你可以使用百分比,你需要的jQuery标识符。
PD:有一个提示可以提供您的信息。将代码放在 html 的最后或 $(document).ready(function() { }); 中,如果您需要响应式设计,也将其放在orientationchange 事件中;这边。
$(window).on("orientationchange",function(event){ window.setTimeout(function(){
var viewportHeight = $(window).height();
var viewportWidth = $(window).width();
$('body,html').css("height",viewportHeight);
$('.someClass').css("height",viewportHeight*0.12);
$('.someClass').css("width",viewportWidth*0.09);
$('#someId').css("height",viewportHeight*0.1);
}}, 450);});
我在上面放了一个 450 毫秒的计时器,因为执行方向更改的设备有延迟。
对不起我的英语,
干杯