gpt4 book ai didi

javascript - 为什么通用 CSS 选择器 (*) 会覆盖内联样式?

转载 作者:太空狗 更新时间:2023-10-29 14:50:51 24 4
gpt4 key购买 nike

我正在使用一个在 Javascript 上运行的内部管理工具,其核心 CSS 文件中包含以下内容:

* {
font-family: Helvetica, Verdana, Arial, sans-serif;
}

根据我的研究,这将是最低级别的特异性。任何事情都会覆盖该设置。

我的目标是更改整个页面上的字体以提高易读性。我在 Firefox 中使用 Python/Selenium webdriver 来使用此 Javascript 修改标签的样式设置,这导致以下内联 HTML:

document.getElementsByTagName("body")[0].style = "font-family:Lucida Fax;";

<body style="font-family:Lucida Fax;" >

更改正在传播到工作表。但是,字体不会改变。在“计算” View 下,我看到以下内容:

font-family: Helvetica,Verdana,Arial,sans-serif;
------------------------------------------------
* > Helvetica,Verdana,Arial,sans-serif core.css;
BODY[1].style > Lucida Fax element;

当我在进行更改后禁用 Firefox 检查器中的 * CSS 属性时,将发生字体更改。所以有些东西覆盖了我的内联样式更改。

作为最终用户,我处于黑盒环境中,所以我无法解释发生的所有事情。这是否是由主动运行的 Javascript 强制样式表优先于内联样式引起的?

最佳答案

<body> 上的“样式”属性标签只影响直接在正文中的内容。各种<div><span>等等 HTML 中的标签与 CSS 规则相匹配。 (如果没有 * 规则,那么自然行为是继承字体信息;但是,并非所有 CSS 属性都会发生继承。)

我所看到的建议是将所有内容设置为“继承”,然后将设置应用于 <body> :

body { font-family: Whatever; }
*, *::before, *::after { font-family: inherit; }

这允许您覆盖某些元素(例如各种表单小部件或其他)。

关于javascript - 为什么通用 CSS 选择器 (*) 会覆盖内联样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41748546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com