首页 > 解决方案 > 禁用/删除元素中的默认 !important 声明

问题描述

我的 wordpress 网站中的一个主要插件发生了 CSS 冲突。插件制造商发现在所有样式表中添加 !important 声明很方便。从开发人员的角度来看;这是一场灾难。在他们的辩护中,他们想要涵盖所有使用 !important 声明的主题,所以它看起来是一致的。我不同意,所以我需要一个解决方案。

发生的事情是我的高级主题,没有使用这些声明,不能覆盖样式。我有一些解决方案可以通过 jQuery 删除某些类。

但是有一个问题不能通过删除类来解决。例如,锚:hover是插件默认border: none !important的。但我想看到的是,anchor:hover 边框选项实际上是通过主题设置应用的。应用的 CSS 是这样的(请注意,.plugin该类未应用在锚中,仅来自 CSS 文件):

.plugin a { border: none !important; }

有什么方法可以禁用 DOM 中的某些类组合?我很高兴使用phpor完成此操作jQuery。类似的东西:.plugin is not applied to anchor我不知道如何解决这个问题。

标签: javascriptphpjquerycsswordpress

解决方案


您需要插件提供的任何样式吗?如果没有,那么可能值得考虑将插件样式完全出列,并在主题不涵盖它的地方添加您自己的样式。

如果您找到样式表的注册名称(应该在样式标签中),您可以使用以下内容将其出列:

function remove_push_plugin_styles() {
   wp_dequeue_style( 'plugin-stylesheet' );
}
add_action( 'wp_print_styles', 'remove_pushy_plugin_styles', 1000 );


推荐阅读