css - 为什么 IE 和 Edge 会忽略整个 CSS 规则?

标签 css internet-explorer css-selectors focus microsoft-edge

考虑以下 CSS 规则:

input:focus,
div:focus-within {
   box-shadow: none !important; 
}

此规则会覆盖 Bootstrap 在焦点上的输入框阴影以及包含在特定 div 中的焦点。虽然 :focus-within 是一个相当新的伪选择器,但假设 IE 和 Edge 不会理解它的含义。

因此,预期的结果是 IE 和 Edge 会忽略无法识别的选择器,并将 CSS 规则应用于它确实知道的其他匹配选择器。

然而,事实并非如此。他们都忽略了 whole 规则,即使它理解 :focus 选择器。

我的问题是:

第 1 部分:为什么要这样做?为什么不直接忽略单个选择器?

第 2 部分:是否有黑客可以让他们忽略单个选择器,同时仍然让它在现代浏览器上工作?

是的,我可以制定另一个仅适用于 IE 和 Edge 的 css 规则,但这只会使代码膨胀并且有些不必要。

最佳答案

如果浏览器不理解规范中的选择器,它们将被命令忽略整个 CSS block 。你应该单独写这些东西。

关于css - 为什么 IE 和 Edge 会忽略整个 CSS 规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50932080/

相关文章:

internet-explorer - Internet Explorer 渐变显示为蓝色

css - CSS 可以选择特定内容的元素吗?

css - 有没有 "all inclusive sibling"CSS 选择器之类的东西?

html - Inline-block 展开高度父容器

javascript - 为 XMLHttpRequest 设置 referer?

html - 当页脚位置 = 绝对时将响应式菜单插入页脚

javascript - 有没有办法警告使用 IE 版本不支持的 JavaScript 功能?

html - CSS Flexbox 样式根据元素数量而变化

html - 如何删除数据表 Bootstrap 的垂直滚动?

html - 如果内联元素超过 max-width 并分成两行,CSS max-width 会导致太多空白