通过 CSS(网格支持)显示浏览器兼容性警报
Display a browser compatibility alert via CSS (grid support)
我可以检测浏览器支持并显示 "alert"(样式 div)关于 CSS 网格与 JS 的兼容性:
function isUpToDate() {
var div = document.createElement('div')
div.style.display = 'grid'
return div.style.display === 'grid'
}
if (!isUpToDate) {
displaySomethingAboutBrowserCompatibility()
}
在 raw CSS 中有没有办法做这种事情:使用 CSS 规则绘制 div 使 div 仅在网格为不支持?
是的,只需使用网格属性设置样式即可 div
以使其不可见,如果不支持网格,它将可见。
这是一个想法。使用旧的 IE 浏览器打开它以查看结果。
.box {
display:grid;
grid-template-columns:0px;
grid-template-rows:0px;
}
.box * {
overflow:hidden;
}
<div class="box">
<div>I am a div inside a grid, if you see me than you cannot use grid</div>
</div>
您可以为此使用 @supports。
默认显示警告,如果支持您想要的功能则隐藏。
div {
display: block;
margin: 1em;
text-align: center;
border: solid red 4px;
}
@supports(display: grid) {
.grids { display: none; }
}
@supports(display: fakedisplay) {
.fakedisplay { display: none; }
}
<div class="grids">Grid is not supported</div>
<div class="fakedisplay">Fake Display is not supported</div>
视情况而定。理论上你可以使用 @supports。 ~唯一的问题是 @supports
没有足够的浏览器支持让你依赖它。~
编辑:@Quentin 的回答表明您可以执行相反的操作让支持的浏览器关闭消息,这是解决我的浏览器支持异议的一个很好的解决方案。
如果您有充分的理由不使用 JS,并且不介意它不适用于所有版本的 IE 和每个浏览器的旧版本,您可以这样做
@supports not (text-align: center) {
.myTextAlignCenterNotSupportedDivMessage {
display: block;
}
}
但这不是我的方法。它不会被驳回。您不能使用 LocalStorage 来记住他们的选择。等等
我可以检测浏览器支持并显示 "alert"(样式 div)关于 CSS 网格与 JS 的兼容性:
function isUpToDate() {
var div = document.createElement('div')
div.style.display = 'grid'
return div.style.display === 'grid'
}
if (!isUpToDate) {
displaySomethingAboutBrowserCompatibility()
}
在 raw CSS 中有没有办法做这种事情:使用 CSS 规则绘制 div 使 div 仅在网格为不支持?
是的,只需使用网格属性设置样式即可 div
以使其不可见,如果不支持网格,它将可见。
这是一个想法。使用旧的 IE 浏览器打开它以查看结果。
.box {
display:grid;
grid-template-columns:0px;
grid-template-rows:0px;
}
.box * {
overflow:hidden;
}
<div class="box">
<div>I am a div inside a grid, if you see me than you cannot use grid</div>
</div>
您可以为此使用 @supports。
默认显示警告,如果支持您想要的功能则隐藏。
div {
display: block;
margin: 1em;
text-align: center;
border: solid red 4px;
}
@supports(display: grid) {
.grids { display: none; }
}
@supports(display: fakedisplay) {
.fakedisplay { display: none; }
}
<div class="grids">Grid is not supported</div>
<div class="fakedisplay">Fake Display is not supported</div>
视情况而定。理论上你可以使用 @supports。 ~唯一的问题是 @supports
没有足够的浏览器支持让你依赖它。~
编辑:@Quentin 的回答表明您可以执行相反的操作让支持的浏览器关闭消息,这是解决我的浏览器支持异议的一个很好的解决方案。
如果您有充分的理由不使用 JS,并且不介意它不适用于所有版本的 IE 和每个浏览器的旧版本,您可以这样做
@supports not (text-align: center) {
.myTextAlignCenterNotSupportedDivMessage {
display: block;
}
}
但这不是我的方法。它不会被驳回。您不能使用 LocalStorage 来记住他们的选择。等等