如何不重写内联CSS规则

时间:2019-05-10 作者:Andrea

我不得不放弃这种风格。css父主题文件,并为“我的子文件夹”中的菜单重新设置了一个不带@媒体规则的副本,优先级为11。

但现在这种新样式正在覆盖内联规则。

有没有办法只覆盖父主题样式而不覆盖内联规则?

我正在自定义wordpress高级主题,我的菜单太长,所以我不得不移动@媒体规则,以触发992px而不是700ishpx的移动菜单。

为了在需要更新主题时保持这些更改,我不得不将样式从队列中删除。css核心文件,并从我的子文件夹(优先级为11)中为菜单(我知道这是唯一的解决方案,实现移动菜单的方式很奇怪(1),如果你好奇,请告诉我),重新申请了一份没有@媒体规则的副本,在customizer中添加了@媒体规则,以便在我需要更少li的情况下进一步更改菜单,移动菜单现在在正确的媒体宽度触发。

但现在,子css正在覆盖内联样式,我的主题使用它来改变事物的死气沉沉的颜色,谁知道还有什么。

有没有办法只覆盖css核心文件而不覆盖内联规则?没有优先级的出列和重新排队没有修复我的菜单。

遗憾的是,我的支持期已过。主题创建者在句点结束前用一张票证修复了我的菜单,但用他的解决方案,我必须更新样式。每次更新后的css父主题文件,据我所见,它不是一个已解决的问题。

(1) 菜单的@media规则有点不寻常,据我所知,菜单总是移动的,@media min width:xxxpx菜单进入桌面,这就是为什么在附加的css文件中只需几行代码是徒劳的。

这就是我使用的排队和退队规则

add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\', 11 );
function my_theme_enqueue_styles() {
    wp_enqueue_style( \'main-css\', get_stylesheet_directory_uri() . \'/css/style.css\' );
    wp_dequeue_style( \'nt-agricom-main-style\');
}

1 个回复
SO网友:user3135691

Please see this post about including styles and scripts correctly.

据我所知,你只是在装腔作势。css,使WordPress没有机会决定何时使用哪个样式表。

为了做到这一点,你需要先注册你的样式,然后WordPress可以根据你的优先级决定样式的放置位置。css。

在您的情况下,您可能需要使用该函数wp_is_mobile().

这并不是你完全正确的答案,但它可能有助于你更好地处理问题并最终解决它。

<?php

    // Example of correct use
    function se_my_script_example(){
        // first, "register" the style
        wp_register_style(
           \'my-style-desktop\', // Handle name
           get_template_directory_uri().\'/style-desktop.css\'); // Path to file
        // Then later on check what kind of device is coming in
        wp_register_style(
           \'my-style-mobile\', // Handle name
           get_template_directory_uri().\'/style-mobile.css\'); // Path to file
        // Then later on
        if(wp_is_mobile()) {
            wp_enqueque_style(\'my-style-desktop\', $deps, $version, $footer);
        } else {
            wp_enqueque_style(\'my-style-mobile\', $deps, $version, $footer);
        }

    }
    add_action(\'wp_enqueque_scripts\', \'se_my_script_example\');