如何为html网页上的所有元素指定字体属性?

Pro*_*ber 116 css

当我设置字体系列,字体大小,颜色等时,似乎有些嵌套元素会使用丑陋的浏览器默认值覆盖它们.

我必须真正为我的页面上的任何元素指定那些数十次,或者有没有办法在全球范围内永久设置它们?

怎么做?

Baz*_*zzz 229

* {
 font-size: 100%;
 font-family: Arial;
}
Run Code Online (Sandbox Code Playgroud)

星号表示所有元素.

  • 这有效,但这不是最好的解决方案.当浏览器看到'*'时,它会遍历页面中的所有HTML元素并将CSS应用于它们.即使对于规则没有任何意义的元素也是如此.这取决于HTML的大小,这可能会减慢页面呈现速度. (15认同)
  • `html {font-family:Arial,helvetica,sans-serif; font-size:100%;} body {font-size:1em; font-family:inherit;}`Font的继承,如果你真的想避免覆盖使用:`*,:before,:在{font-family:inherit;}之后`如果必须使用通用选择器,请改用继承. (5认同)
  • 同意,但它将CSS应用于所有元素,正如BugAlert所要求的那样.如果想要影响所有元素,可以预期性能会降低一点.:) (4认同)
  • 我知道它已经有5年了,但直到现在我都没有注意到我感到惊讶:你应该_never_在"font-family"中只指定一个Windows字体(除非它当然是webfont) - Arial,helvetica,sans-serif等等兼容. (4认同)

Pau*_*aul 16

如果您正在使用IE,则可能会恢复某些元素(如表格)的浏览器默认值.您可以通过以下CSS来解决这个问题:

html, body, form, fieldset, table, tr, td, img {
    margin: 0;
    padding: 0;
    font: 100%/150% calibri,helvetica,sans-serif;
}

input, button, select, textarea, optgroup, option {
    font-family: inherit;
    font-size: inherit;
    font-style: inherit;
    font-weight: inherit;
}

/* rest of your styles; like: */
body {
    font-size: 0.875em;
}
Run Code Online (Sandbox Code Playgroud)

编辑:您可能想要阅读CSS重置; 看到像这样的线程


Chr*_*Cox 9

我不能强调这个建议:使用重置样式表,然后明确设置所有内容.它会将您的跨浏览器CSS开发时间缩短一半.

试试Eric Meyer的reset.css.

  • 我倾向于将其复制并粘贴到样式表的开头,而不是单独链接它,这样可以节省 HTTP 请求。它将帮助您在浏览器之间设置一致的样式,因为它将所有内容归零:唯一的样式将是您编写的样式。 (2认同)

jim*_*ode 8

你可以在body标签中设置它们

body
{
    font-size:xxx;
    font-family:yyyy;
}
Run Code Online (Sandbox Code Playgroud)

  • 这是不准确的,因为大多数浏览器不会将此字体应用于某些元素(元素将不会继承字体样式) (13认同)