无法覆盖另一个CSS文件中的font-size:100%和font-inherit属性



在我的项目中,我们有一个全局CSS文件'global-css',用于网站的所有网页。此文件内容,

font-size: 100%;
font: inherit;    
properties for body,div,h1,h2 etc. 

从上述代码复制 http://www.cssreset.com/的链接 - 埃里克·马尤尔的。

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
........, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    ***font-size: 100%;
    font: inherit;***
    vertical-align: baseline;
}

我无权编辑这个(全局-css)CSS文件。

但是这 2 行在我的网页上造成了 UI 问题。如果我从"global-css"中删除这 2 行,那么我的网页工作正常(没有任何 UI 问题)。我想以某种方式将这 2 行覆盖到我自己的 CSS 文件中(该文件将仅导入我的网页)。我创建了 1 个 CSS 文件(override-css),我可以在其中覆盖"global-css"中的任何类。

请建议在我的"override-css"中覆盖上述属性的好方法。
感谢您的帮助:)

澄清一下:我想将这些属性设置为 DEFAULT/NULL,以便所有元素都从各自的类中获取字体。

我试图在global-css中覆盖上面的代码,但不幸的是,我们没有font属性的默认值。

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
........, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    ***font-size: ________ !important;
    font: ________ !important;***
    vertical-align: baseline;
}

我想要一些属性值来重置 ss-override中的这两个属性。

还有一个"main.css"CSS文件,其中包含元素的所有类。但是来自"global-css"的这两行不允许应用这种样式。

用于导入 CSS 的顺序是:main -> global-css -> override-css。

您是否尝试过使用 !important 属性。

否则,通常最后一个 css 样式优先。因此,如果您使用属性加载这两个类,那么这应该覆盖全局.css样式。

不起作用,因为您以错误的顺序导入文件 - 您在上面说过:"用于导入 CSS 的序列是:main -> global-css -> override-css"。

如果你把这个顺序改为:global-css -> main,你应该发现一切正常,因为main中的内容现在将覆盖global-css中早期的设置。而且您根本不需要覆盖文件。这将起作用,因为全局 all 中的 CSS 在规则中具有尽可能低的特异性(只有一个元素,例如 h2 或div 等),因此以下任何内容都将自动覆盖这些规则。使用!important根本不是正确的方法。

如果由于某种原因无法访问代码来更改导入顺序,在导入或链接全局文件后,您仍然可以在 HTML 中再次链接主 CSS 文件(或链接它的副本),因此确保它的设置将覆盖之前的内容。

使用 !important 应该可以解决问题。但这同样受 CSS 顺序和浏览器的约束。案例:您已经使用了!important,并且您的语句下方有字体大小属性,并且由于它的CSS渲染逻辑,您的语句将无法在某些浏览器中工作,例如chrome。

最好的方法是删除所有其他适用于元素的字体CSS,并在类中添加相同的字体

你可以试试

font-style: italic; 

这将起作用。

最新更新