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