css - 使用 modernizr 检测 vh,vw 和 calc

标签 css calc viewport-units

所以我遇到了一个问题,浏览器与 vh、vw 单位兼容并且与 calc() 兼容,但与 calc 中的 vh、vw 单位不兼容。所以我不确定如何使用 modernizr 来测试该特定案例。

对此有什么想法吗?非常感谢!

最佳答案

您可以在 Modernizr 中添加一个自定义测试来为您检查:

Modernizr.addTest('calcviewportunits', function(){
    var computedHeight, 
        div = document.createElement('div');

    div.style.height = 'calc(10vh + 10vw)';
    document.body.appendChild(div);
    computedHeight = window.getComputedStyle(div).height;
    document.body.removeChild(div);

    return computedHeight !== "0px";
});

在 Chrome 26(返回 false)和 41(返回 true)上测试。我不确定哪些浏览器确实支持和不支持这一点,但您可以运行以下 fiddle 来测试它:http://jsfiddle.net/3dthsgv5/6/

不过,这并不仅仅针对 calc() 进行测试,我发现最好将关注点分开。对 calc() 支持的单独检查已经存在于 Modernizr 中(只是不在默认配置中)并且可以在这里找到:How can I check if CSS calc() is available using JavaScript?

还可能值得注意的是,视口(viewport)单位不是 widely supported然而。同时支持 calc 和视口(viewport)单位但不组合的情况非常罕见。

关于css - 使用 modernizr 检测 vh,vw 和 calc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27592524/

相关文章:

css - 为什么 calc(50% + 0) 是错误的?

Java数据读取谷歌云平台

css - 视口(viewport)单元 div 内的百分比高度在 Safari 中不起作用

css - chrome 的 calc() 和 vh 解决方法?

javascript - 如何在 HTML5 中拖动时更改光标图标?

javascript - 为什么我的 Bootstrap 模态窗口在 Opera 中不起作用?

javascript - 更平滑的固定 float

浏览器缩放时的 CSS 边距/填充问题

css - Margin Top 100% - Parent Div 的高度

html - 使用 100vw 和 vh 会创建超出视口(viewport)大小的额外空间。我该如何摆脱它?