排队的CSS文件分隔符的第一个元素/选择符

时间:2016-12-31 作者:CoderScissorhands

我已使用成功将CSS文件排入队列wp_enqueue_style. 我已经验证了我用于所有设置和选择器的CSS是正确的。实际上,除文件中的第一个选择器指定的设置外,所有样式都将应用。其设置从不读取/应用于其相应的元素。

我已经确认,问题仅限于文件开头的选择器,而不是通过简单的测试来测试我的实际CSS:我只是在代码上方添加了一个额外的选择器,然后突然应用了第一个选择器时不起作用的代码。类似地,如果我有两个选择器,并交换它们的位置,使第一个现在是第二个,第二个现在是第一个,第一个(以前不工作)工作,第二个(以前工作)不再工作。

第一个选择器未应用

<style> 

#IntendedfirstSelector {  
   color: blue;       /* this won\'t work*/
}

#IntendedSecondSelector { 
   color: red;      /* this works*/
}

</style>
插入填充选择器可恢复功能
<style> 

#uselessSelector {  
   color: white;  /* inserted filler selector; now none of my needed code is the called by the 1st selector */
}

#IntendedfirstSelector {  
   color: blue;  /* with the filler inserted above, the same code now works*/
}

#IntendedSecondSelector {   /* this still works*/
   color: red;
}

</style>
在我看来,浏览器或WP解释文件的方式有点奇怪。当我检查头部的链接时,我觉得一切正常

<link rel="stylesheet" id="themeName-child-extra-style" href="http://example.com/wp-content/themes/themeName-child/my_css_file.css?ver=4.7" type="text/css" media="all">
在我当前的伪工作版本中,第一个元素断开,首先我有标记<style>...</style> 包装代码。为了让第一个元素发挥作用,我尝试了:

移除样式标记type="text/css" 内部<style> 标签here).我不知道问题出在哪里,因为我的CSS只要不是第一个元素,就可以工作。

我认为唯一奇怪的事情可能是,我使这个样式表依赖于主题的主样式表(style.css),以便在主文件之后加载小文件(WP默认为最后加载主文件)。我不知道依赖关系/顺序是否会导致这样的问题,但我想我应该提一下。

This is my code for enqueing (as @prosti requested):

function themeName_child_enqueue_styles() {
    wp_enqueue_style( \'themeName-style\', get_template_directory_uri() . \'/style.css\' ); //parent stylesheet
    wp_enqueue_style( \'themeName-child-style\', get_stylesheet_directory_uri() . \'/style.css\' );  //child stylesheet
    wp_add_inline_style( \'themeName-child-style\', some_inline_css() ); //some inline style I seem to have no problems with 
    wp_enqueue_style( \'themeName-child-extra-style\',  get_stylesheet_directory_uri() . \'/my_css_file.css\', \'themeName-child-style\'); // the file with the broken selector and the dependency on the child-theme\'s stylesheet;
}

1 个回复
最合适的回答,由SO网友:prosti 整理而成

你检查过这份文件了吗?https://codex.wordpress.org/Child_Themes

我的意思是:

如果你的孩子的主题风格。css包含实际的css代码(通常是这样),您还需要将其排队。将“父样式”设置为依赖项将确保子主题样式表在其之后加载。包含子主题版本号可以确保您也可以为子主题进行bust缓存。(请参阅有关堆栈交换的更详细讨论。)完整(推荐)示例如下:

请提供您在子主题中如何将样式排队的行。

PS:您不需要使用<styles> CSS文件内部。