【问题标题】:Unset pixel font-size of another stylesheet未设置另一个样式表的像素字体大小
【发布时间】:2019-11-27 03:59:57
【问题描述】:

我创建了一个主题的 WordPress 子主题,该主题在 body 标签中设置字体大小,如下所示

body {
    font-size: 16px;
    font-size: 1rem;
}

这更像是一个 CSS 问题,但对于那些不太熟悉 WordPress 的人来说:我无法更改父主题中的样式,因为这是不好的做法,并且会被任何更新覆盖。所以必须接受他们在那里设置的内容并用我自己的样式表覆盖它。

但是,众所周知,上述做法是不好的做法,因为它不允许用户更改浏览器中的字体大小,也没有考虑到并非所有浏览器都有其基本字体-大小设置为 16 像素。

我可以在子主题中做什么来取消设置?我宁愿这样设置:

body {
    font-size: 0.625em
}

然后用 REM 设置每个元素的实际大小。但是,EM 值似乎没有覆盖父主题中设置的 PX 值。

有没有办法“取消设置”父母硬编码的字体大小?

【问题讨论】:

  • 是否将16px 更改为例如8px 真的做点什么吗?我猜1rem 只是覆盖16px 并且 px 值只是不支持 rem 的浏览器的后备。所以你的规则应该已经用0.625em覆盖它。
  • 我进行了快速测试,将主体的font-size 设置为0.625em,然后在源顺序中将其设置为1rem; 16px。它完全按照我的预期工作:即,0.625em 覆盖了先前的定义(假设它在该声明之后)。我很困惑为什么您在测试中没有看到这一点。此外,CSS 有一个 unset 属性,但您在这里似乎不需要它。 body {font-size: unset}
  • 如果包含body { font-size: 0.625em} 的样式表是在包含固定值的样式表之后加载的,那么它应该覆盖那个样式表。那么你确定它是以正确的顺序加载的吗?

标签: css wordpress pixel font-size


【解决方案1】:

这可能是一个优先问题。

可能的解决方案

您的子主题 style.css 可能比您的父母 style.css 加载得更快/更早。

在父样式表之后将子元素排入队列,因此您可以使用相同的 css 选择器覆盖父样式表,而无需使用 !important。

解决方法是关键字:

font-size: 0.625em !important

除了添加 !important 之外,您还可以更改 functions.php 中的一些设置

尝试 enquing 你的孩子主题的 css 像:

function child_theme_styles() {
   wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
   wp_enqueue_style( 'child-theme-css', get_stylesheet_directory_uri() .'/style.css' , array('parent-style'));

}
add_action( 'wp_enqueue_scripts', 'child_theme_styles' );?>

【讨论】:

  • Your child-theme style.css might load faster/earlier than your parents style.css. 加载多快并不重要,重要的是顺序。
【解决方案2】:

要取消设置font-size 规则,您可以使用:

font-size: initial;

【讨论】:

  • 不幸的是,这不起作用。这意味着我首先将正文的字体设置为初始字体,然后将其调整为 0.625em 并将实际大小设置为 1.6rem。 rem 似乎忽略了“初始”。无法准确告诉您字体大小计算发生了什么,但它似乎不起作用。
  • 如果你设置body {font-size: 0.625em;}它不起作用?你能做一个测试,然后用html body 设置它,看看是否有效
猜你喜欢
  • 2019-03-11
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 2018-02-03
  • 1970-01-01
  • 2014-07-15
  • 2020-03-21
相关资源
最近更新 更多