主题的默认样式将覆盖我的插件的自定义CSS

时间:2014-07-06 作者:Eddie

我创建了一个小插件,创建了一个我制作的小部件,基本上只是一个<ul> 要素不幸的是,所有默认的小部件样式都覆盖了我的自定义CSS,并添加了!important 由于不同的尺寸和颜色变化,某些款式正在打破一些东西。

有办法解决这个问题吗?我只希望样式表适用于我制作的一个小部件,而不是从默认值加载。

如有任何提示/建议,将不胜感激。

1 个回复
SO网友:Pieter Goosen

首先,我想说我同意@Wyck所说的

通常,用插件覆盖主题的CSS是个坏主意,但向小部件添加一个自定义的唯一类/id应该可以做到这一点。

你说“威克”的建议不起作用。我可能会认为这是一种方式,也是确保你不会干扰主题样式的唯一方式。您应该使用唯一的id或类,然后以该选择器为目标。我只是觉得你在这里的执行是错误的,这就是为什么它不起作用。

首先,你应该避免使用!important 在css中。通常这意味着没有正确设置样式表的优先级

其次,这里的首要问题是你。所有样式都被主样式表覆盖,因为样式是先加载的,而不是最后加载的。我相信您已经将样式表与wp_enqueue_style() 然后把它钩住wp_enqueue_scripts

function my_plugin_style() {
       wp_enqueue_style( \'myPluginStylesheet\', plugins_url(\'stylesheet.css\', __FILE__) );
   }

add_action( \'wp_enqueue_scripts\', \'my_plugin_style\' );
如果你看看add_action( $hook, $function_to_add, $priority, $accepted_args );, 您将看到第三个参数($priority) 就是你设置钩子必须执行的优先级的地方。数字越高,优先级越低。在您的情况下,您需要设置一个非常低的优先级,以确保最后加载您的样式。所以你需要这样做

add_action( \'wp_enqueue_scripts\', \'my_plugin_style\', 9999 );

结束

相关推荐

Dynamic CSS through PHP issue

我试图创造一种动态风格。php样式表。我正在测试的最基本功能是主题选项上的颜色选择器。颜色选择器可以工作,但我的动态css文件不能工作。在Chrome上,我检查导航元素时收到“非法字符串偏移”错误。我可以确认它正在识别和回显字符串,但不是值。我的动态css文件:<?php $absolute_path = explode(\'wp-content\', $_SERVER[\'SCRIPT_FILENAME\']); $wp_load = $absolute_path[0] .