我正在更新某个网站,试图摆脱全局的@font-face
,并仅将其应用于特定元素。
它是这样定义的:
@font-face {
font-family: "neutra";
src: url( /styles/NeutraDisp-Bold.eot ); /* IE */
src: local("Neutra Display"), url( /styles/NeutraDisp-Bold.ttf ) format("truetype"); /* non-IE */
}
@font-face {
font-family: "futura";
src: url( /styles/FuturaStd-Heavy.eot ); /* IE */
src: local("Futura Std"), url( /styles/FuturaStd-Heavy.ttf ) format("truetype"); /* non-IE */
}
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
font-family: neutra, Arial, Helvetica, Tahoma, Geneva, sans-serif;
}
我只想在具有类.header
和legend
(以及一些其他标记,最终)的
上添加它,因此我修改了CSS,使其如下所示:
然而,被忽略了
此外,
注意:当我开始工作时,我移动了字体和其他各种东西,但我知道新的字体路径是正确的,因为
如果您认为问题在其他地方,请看整个CSS的pastebin,我也创建了包含fontface的jsfiddle,以查看它被忽略的示例。
旧的更新 jsfiddle正在执行它应该做的事情。我不知道自己的代码有什么不同。
更新 我已经添加了冒犯的规则。我认为我错过了关于规则权重的一些东西,这就是为什么较低的规则仍然没有覆盖较高的规则的原因。
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
font-family: Arial, Helvetica, Tahoma, Geneva, sans-serif;
}
@font-face {
font-family: "neutra";
src: url('../../styles/NeutraDisp-Bold.eot'); /* IE */
src: local("Neutra Display"), url('../../styles/NeutraDisp-Bold.ttf') format("truetype"); /* non-IE */
}
@font-face {
font-family: "futura";
src: url('../../styles/FuturaStd-Heavy.eot'); /* IE */
src: local("Futura Std"), url('../../styles/FuturaStd-Heavy.ttf') format("truetype"); /* non-IE */
}
legend{
font-family: neutra, Helvetica, Arial, sans-serif;
letter-spacing: .125em;
-webkit-border-radius: .5em;
-moz-border-radius: .5em;
border-radius: .5em;
}
.header{
width: 75em;
height: 12.375em;
background-color: #FFFFFF;
margin: auto;
font-family: neutra, Helvetica, Arial, Tahoma, Geneva, sans-serif;
}
然而,被忽略了
.header
的font-family
。该规则中的所有其他声明都被使用,并且Firebug显示了font-family
,这表明它是有效的CSS。此外,
legend
规则完美地工作,并显示正确的字体。注意:当我开始工作时,我移动了字体和其他各种东西,但我知道新的字体路径是正确的,因为
legend
规则可以正常工作。我也尝试过"neutra"
和'neutra'
。如果您认为问题在其他地方,请看整个CSS的pastebin,我也创建了包含fontface的jsfiddle,以查看它被忽略的示例。
旧的更新 jsfiddle正在执行它应该做的事情。我不知道自己的代码有什么不同。
更新 我已经添加了冒犯的规则。我认为我错过了关于规则权重的一些东西,这就是为什么较低的规则仍然没有覆盖较高的规则的原因。
.header
被嵌套的div
,p
等规则所覆盖。 - numbers1311407html
上,然后你对.header
的覆盖将优先生效。也就是说,不要使用那个长长的元素列表,而是简单地使用html { font-face: whatev; }
。 - numbers1311407