【发布时间】:2018-07-04 04:31:45
【问题描述】:
我通常使用 Modernizr 来检测 CSS 功能(如 flex-box 支持),如果不支持则回退到旧方法:
.mz-flexbox {
// use flex
}
.mz-noflexbox {
// use floats
}
使用Modernizr 之类的Modernizr 将类添加到<html> 元素以指示功能支持如何完成类似的事情?
此时我唯一的想法是在我的“App.js”中导入组件并使用injectGlobal 来定位它们:
import MyComponent from './components/my-component';
injectGlobal`
.mz-flexbox {
${MyComponent} {
// use flex
}
}
`;
看来@supports 会是一个不错的解决方案,但我确实关心 Internet Explorer,所以这不是这个项目的解决方案。
最后,我不确定这是否是一种好方法,但是这样的方法可以用于特征检测吗?我不是 100% 了解使用样式组件编译的内容以及可以在运行时计算的内容:
styled.div`
${window.Modernizr.flexbox && css`
display: flex;
align-items: center;
`}
`;
这对运行时的检测有用吗?
【问题讨论】:
标签: css reactjs modernizr feature-detection styled-components