覆盖wordpress css?

时间:2017-05-21 11:16:12

标签: html css wordpress web overwrite

所以我目前正在为wordpress中的电子竞技团队创建一个网站,我刚遇到一个问题,我不记得如何整理。我记得制作chrome扩展时有一种方法可以做到这一点,但我不记得了,这就是为什么我现在在这里:)

First code 正如您在图片中看到的那样,这就是CSS中的内容,我需要将其保留在其他页面中,但我希望我的一页覆盖它。我有一个盒子,我可以添加自定义CSS,但是当我添加代码时,它会被旧代码覆盖。我知道为什么会发生这种情况,但不知道如何修改它而不改变原来的CSS(我宁愿避免)

Overwritten code

所以我的问题是,如何让我的新css覆盖我的旧CSS? (我试过了!很重要而且什么都没做)

2 个答案:

答案 0 :(得分:1)

在检查当前适用于特定元素的代码时,Chrome还会告诉您哪个特定选择器应用该规则以及它来自何处。您需要做的就是编写一个更强大的选择器,它将适用。在您的示例中,body:not(.template-slider) #Header { }将被...

覆盖
body.page:not(.template-slider) #Header {/* CSS here */ }

理想情况下,最好不必增加当前选择器的特异性,但最后应用您的规则,使用 相同的选择器 < / strong>即可。最简单的方法是在活动主题CSS的末尾添加style.css,除非您的主题/ WP安装搞砸了。

顺便说一下,如果您使用的是自己没有开发的主题,那么您的主题主题应该是儿童主题。这很重要,但是你应该分别考虑它为什么重要,有什么好处以及如何做。

如果写入您的活动主题的style.css(到目前为止,推荐的 WordPress方式)不是一个选项,您可以随时将所有CSS放入您选择的单独样式表中(即my-custom-style.css),放置在活动主题的文件夹中,并使用活动主题的functions.php中的以下代码进行注册:

function add_styles_to_your_active_theme() {
  wp_enqueue_style (
    'my-custom-style', 
    get_stylesheet_directory_uri() . '/my-custom-style.css', 
    array(), 
    null
  );
}

add_action( 'wp_enqueue_scripts', 'add_styles_to_your_active_theme' ); 

添加并确保加载后,您可以使用上面调用<head>中的第三个参数,通过将其他已注册的样式表指定为您的依赖项来修改其在wp_enqueue_style()标记中的位置。

您需要将其他已注册脚本的句柄放入该数组中。您可以通过查看任意页面的<head>标记找到句柄,查找上次加载的<link rel="stylesheet" />标记,并从其{{1}中删除结尾-css }}。例如,如果您上次加载的样式表的链接ID为id,则您对some-theme-style-css的调用的第三个参数应为wp_enqueue_style()

之后,再次检查array('some-theme-style')标记并确保您的标记为最后一个。如果没有,请将每个<head>的{​​{1}}添加到<link />数组,剥离id,直到您的最后一个为止。当样式表最后加载时,您可以将任何应用选择器复制粘贴到它,将规则更改为您想要的任何内容并将应用它们。

但请注意,在正常使用条件下,上述方法是不必要的。通常你应该使用一个子主题,将$deps放在-css中,而不必担心这样的棘手细节,为主题和插件创建者保留。

答案 1 :(得分:0)

Yo can overwrite CSS with adding child selectors for your specified DIV element.

这里的小提琴示例http://jsfiddle.net/JfGVE/2031/