css - Safari 忽略 CSS :not() 规则
问题描述
我遇到了Safari 13.0.5 (14608.5.12)的问题
在尝试修改一些WordPress Divi 构建器插件样式时,我遇到了一个意想不到的问题,即无法应用一个否定规则,该规则将阻止插件在必要时在特定位置进行样式设置。
修改文件:
src/wordpress/wp-content/plugins/divi-builder/includes/builder/styles/frontend-builder-plugin-style.min.css
所以我来自这个:
#et-boc .et-l .hentry,
#et-boc .et-l a,
#et-boc .et-l a:active,
#et-boc .et-l blockquote,
#et-boc .et-l div:not(.woocommerce-message,.star-rating),
#et-boc .et-l em,
#et-boc .et-l form,
#et-boc .et-l h1,
#et-boc .et-l h2,
#et-boc .et-l h3,
#et-boc .et-l h4,
#et-boc .et-l h5,
#et-boc .et-l h6,
#et-boc .et-l hr,
#et-boc .et-l iframe,
#et-boc .et-l img,
#et-boc .et-l input,
#et-boc .et-l label,
#et-boc .et-l li,
#et-boc .et-l object,
#et-boc .et-l ol,
#et-boc .et-l p,
#et-boc .et-l span,
#et-boc .et-l strong,
#et-boc .et-l textarea,
#et-boc .et-l ul,
#et-boc .et-l video {background: 0 0;
border: none;
-moz-border-radius: 0;
-webkit-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
color: inherit;
letter-spacing: normal;
margin: 0;
outline: 0;
padding: 0;
text-align: inherit;
text-shadow: inherit;
-moz-transition: none;
-o-transition: none;
-webkit-transition: none;
transition: none;
vertical-align: baseline;
}
对此:
#et-boc .et-l *:not(.no-divi-styles) .hentry,
#et-boc .et-l *:not(.no-divi-styles) a,
#et-boc .et-l *:not(.no-divi-styles) a:active,
#et-boc .et-l *:not(.no-divi-styles) blockquote,
#et-boc .et-l *:not(.no-divi-styles) div:not(.woocommerce-message,.star-rating),
#et-boc .et-l *:not(.no-divi-styles) em,
#et-boc .et-l *:not(.no-divi-styles) form,
#et-boc .et-l *:not(.no-divi-styles) h1,
#et-boc .et-l *:not(.no-divi-styles) h2,
#et-boc .et-l *:not(.no-divi-styles) h3,
#et-boc .et-l *:not(.no-divi-styles) h4,
#et-boc .et-l *:not(.no-divi-styles) h5,
#et-boc .et-l *:not(.no-divi-styles) h6,
#et-boc .et-l *:not(.no-divi-styles) hr,
#et-boc .et-l *:not(.no-divi-styles) iframe,
#et-boc .et-l *:not(.no-divi-styles) img,
#et-boc .et-l *:not(.no-divi-styles) input,
#et-boc .et-l *:not(.no-divi-styles) label,
#et-boc .et-l *:not(.no-divi-styles) li,
#et-boc .et-l *:not(.no-divi-styles) object,
#et-boc .et-l *:not(.no-divi-styles) ol,
#et-boc .et-l *:not(.no-divi-styles) p,
#et-boc .et-l *:not(.no-divi-styles) span,
#et-boc .et-l *:not(.no-divi-styles) strong,
#et-boc .et-l *:not(.no-divi-styles) textarea,
#et-boc .et-l *:not(.no-divi-styles) ul,
#et-boc .et-l *:not(.no-divi-styles) video {background: 0 0;
border: none;
-moz-border-radius: 0;
-webkit-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
color: inherit;
letter-spacing: normal;
margin: 0;
outline: 0;
padding: 0;
text-align: inherit;
text-shadow: inherit;
-moz-transition: none;
-o-transition: none;
-webkit-transition: none;
transition: none;
vertical-align: baseline;
}
该解决方案适用于 Chrome、Firefox 等!...除了 Safari =/
这个浏览器有什么问题?
解决方案
您还不能在:not()
所有浏览器中使用选择器列表,这就是为什么您在 Safari 中看不到这项工作的原因——整个选择器列表都被删除了。请参阅MDN 的参考资料。
你需要把它分成两个:not()
:
...
#et-boc .et-l *:not(.no-divi-styles) div:not(.woocommerce-message):not(.star-rating),
...
推荐阅读
- java - 从 Android Kotlin 项目生成的 UML 图无法建立关联(Intellij IDE)
- classification - 使用 LightGBM 对不平衡分类使用推荐的正类权重的倒数时实现的最佳性能 (AUC)
- python - Pandas - 按一列分组并聚合其他列以列出
- github - 在 GitHub Actions 中,如何在推送时触发,但前提是 PR 处于活动状态?
- javascript - React - 仅在状态更改后才做某事(钩子)
- node.js - Firebase PubSub 函数需要 2 多分钟才能响应
- iokit - 程序未在 Big Sur 上运行 - 适用于所有 10.xx
- html - 表格可以在引导模式内滚动,但现在表格条目宽度不同
- scala - 在 Scala 对象中定义的范围字段的最佳实践
- css - 行的 Flexbox 布局问题