我试图在我的WordPress仪表板中使用jQuery Datatables插件,但原生WordPress admin CSS样式覆盖了Datatables CSS,我这样调用它们。。。
add_action(\'admin_enqueue_scripts\', \'admin_scripts\');
function admin_scripts() {
wp_enqueue_script(\'datatables\', \'//cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.js\', array(\'jquery\'),\'1.21\', true );
wp_enqueue_style(\'datatables-css\', \'//cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.css\', 99);
}
有没有办法更改优先级,使其首先加载datatables CSS?
SO网友:Cedon
默认情况下,它们应该已经在核心管理样式之后加载。我怀疑CSS甚至没有被加载,因为您的wp_enqueue_style()
呼叫其参数与wp_enqueue_script()
. 你在哪里99
是实际定义依赖项的位置。WordPress正在寻找99
要加载,找不到它,并跳过排队。
因此,我将重写如下:
wp_enqueue_style( \'datatables-css\', \'//cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.css\', \'datatables\' );
这样做的目的是加载样式表,但前提是加载JavaScript文件。
SO网友:Peter HvD
您不需要这样做,因为这都是关于CSS特定性的。您需要做的是将datatable包装在一个唯一的div中,然后使用该div专门针对CSS中的元素。
例如(顺便说一句,我不知道CSS,所以这只是一个一般的例子)
将表格元素包装在<div class="myClass">
使用浏览器中的检查器可以准确地找出要覆盖的样式所使用的CSS行。
如果元素的CSS为table.dataTable tr.dataTr td.dataTd
然后,如果向其中添加包装器div,它应该覆盖它,因为它更具体,即:.myClass table.dataTable tr.dataTr td.dataTd
您可能需要进行一点实验,直到获得完全正确的组合来覆盖特异性。我通常发现一个包装器元素就足够了,但有时我发现向(例如)table元素添加一个特定的类会有所帮助(如果可以的话),因此可能是:table.dataTable.myTableClass tr.dataTr td.dataTd
希望有帮助