1

我正在为 Wordpress 编写一个插件,我需要在前端将样式文件排入队列。但是当我这样做时,其他一些插件(如 vs_composer)会在我的插件之后添加它们的样式文件并覆盖我的代码。所以我认为有两种选择来处理这种情况。第一个是制定一些!important我认为不是专业方式的 CSS 规则。另一种选择是在所有其他文件之后加载我的插件 CSS 文件;但有可能吗?我猜这个目标不能通过使用$deps参数来 实现,wp_enqueue_style 因为如果依赖文件不存在,它不会加载文件。

4

1 回答 1

1

您可以通过 hook into 将样式表排入队列,这会在前端wp_head的标签中打印数据。head

function enqueue_styles() {
  wp_enqueue_style( 'frontend-style', plugin_dir_url( __FILE__ ) . 'styles.css' );
}

add_action( 'wp_head', 'enqueue_styles' ); // default priority: 10

如果您需要稍后输出样式表,您可以降低优先级。

例如,

add_action( 'wp_head', 'enqueue_styles', 20 ); 

或者,您可以将选择器更改为更具体,因此您的 CSS 规则优先于 vs_composer 的规则。

div {}
div.my-class {} /* more specific */
body div.my-class {} /* even more specific */

特异性是浏览器决定哪些 CSS 属性值与元素最相关并因此将被应用的方法。[…] 特异性是应用于给定 CSS 声明的权重,由匹配选择器中每个选择器类型的数量决定。当多个声明具有相同的特异性时,CSS 中的最后一个声明将应用于元素。

MDN 来源

于 2020-04-10T20:43:37.293 回答