默认Web字体样式

通常用户看到的页面的样式会受到三层控制,第一层是浏览器的默认样式,第二层是网页定义样式,第三层是用户自定义样式。和CSS一 样,后面的优先级高于前面的,也就是说网页定义样式可以覆盖浏览器的默认样式,而用户自定义样式优先级最高。实际情况是虽然浏览器都或多或少提供了用户自 定义样式的功能,但是极少数会有用户去自定义,一般用也是高级用户。而浏览器默认的样式往往在不同的浏览器、不同的语言版本甚至不同的系统版本都有不同的 设置,这就导致如果直接利用默认样式的页面在各个浏览器下显示非常不一致,于是就有了类似YUI的reset之类用来尽量重写浏览器的默认设置保证各个浏览器样式一致性的做法。

拿字体来说,各个浏览器默认的字体种类、字体大小和字体行高都不一样,比如IE8的中文版在Windows XP下显示网页时默认字体是宋体,而英文版肯定不会如此。所以我们需要统一设置默认的字体样式,以便实现一致的显示效果来保证设计的一致性和提高开发效率。

以后准备使用如下默认字体样式:

body{
  font: 12px/1.5 arial;
}

字体:arial

我们页面的绝大部分内容字符都是中文,毫无疑问目前为止在网页上最常用也是最通用的显示中文的字体是宋体,但是宋体在显示英文、数字和英文符号时过于糟糕,比如©字符,所以我们一般期望通过CSS来实现用更好的字体样式来显示它们,然后用宋体来显示中文和中文符号。之所以选择arial是因为:

  1. Windows和Mac都预装了这款字体,应该是使用最广泛的网页字体了。它的潜在对手tahoma和helvetica就没有这么幸运了。
  2. 视觉设计的专业人士可能会认为在Windows中使用tahoma、在Mac中使用helvetica更好,比如淘宝的默认字体样式是font: 12px/1 Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif;
    这是一个很不错的选择,但是你也会发现Google、YAHOO、Youtube、Bing甚至MSN的新版都使用arial作为第一默认字体。所以从美观和可读性上来讲arial应该是完全可以接受的。
  3. 一般情况下设置font-family都会在最后设置通用字体族以保证其安全性,比如Google的设置为font-family:arial,sans-serif;,但是至少在非中文版的Win7下当编码是GBK时,IE8会因sans-serif来渲染宋体,导致字体出现变形,这就是为什么淘宝需要在sans-serif前加上宋体而Google无需这样做的原因。
  4. 因为中文字体的选择非常有限,所以目前所有的主流浏览器都设置使用宋体来显示中文。Baidu的首页和搜索结果页使用font-family:arial;可以从侧面说明这样做的安全性。可能有人注意到Firefox中国版默认显示的中文字体是微软雅黑,这是因为谋智网络擅自修改了用户自定义样式,不允许网页的样式覆盖浏览器设置的样式。也是由于类似的情况,我们要弹性设计网页非常重要。

使用英文字体作为第一默认字体会导致的问题之一就是中英文以及符号混排时的对齐问题、通过设置行高和hasLayout能解决绝大部分情况,但是都不会很完美,如果把字体改成“宋体”能彻底的解决问题。很明显,这个问题只出现在IE上。所以,如果你的网站很少使用英文、数字和英文符号,那么直接设置{font-family:\5b8b\4f53;}也是很合理的选择。

大小:12px

  1. 12px是宋体能显示的极限,虽然微软雅黑能显示更小的字体,但目前的应用环境尚未成熟。由于宋体基本上是目前显示中文唯一的通用Web字体,所以12px成为最常用的字体大小。我们当然可以依据产品的需要来修改这个默认值。
  2. 不用考虑基于字体大小(em)的设计
  3. 在Chrome3.0之后的中文版中,字体大小最小值是12px,比如你设置最小字体为10px,最后也变成12px。

行高:1.5倍

  1. 这是一个经验值,不同的产品对这个值要求可能不同,但我们一般会设置最常用的为默认值。比如YUI的font中是font:13px/1.231 arial,helvetica,clean,sans-serif;即字体大小默认值是13px,行高是13*1.231=16.003px,默认的行高是默认字体的1.231倍。对于中文来说,常用的字体大小12px、14px、16px、18px等偶数大小,在IE6和IE7设置其行高也为偶数能解决一些特殊情况下的字体对其问题。
  2. 在IE6和IE7中,行高值必须大于字体的2px才能保证字体的完整显示或当其作为链接时能有效显示下划线。
  3. 设置line-height时,注意不要使用单位(包括%在内),因为子节点会继承经过运算后的line-height值,所以当使用单位后浏览器会把line-height计算成第一次定义的绝对值,而不会随着字体大小的变化而变化,而无单位的数值表示是所在容器的font-size的倍数,所以设置为无单位的数值是最佳选择。
  4. 深入CSS 行高非常有利于理解line-height,值得一读。

性能和效率

  1. 大部分平台都有arial,减少浏览器的查找时间。
  2. 代码最少,书写方便。arial基本上是名字最短的字体了,可以节约CSS的大小。
  3. 所有的字母都小写,目前Google就是这样做的,好处是既可以编写更快也能提升Gzip压缩的效率
  4. 中文最好用unicode表示,比如使用宋体是{font-family:\5b8b\4f53;},使用微软雅黑是{font-family:\5fae\8f6f\96c5\9ed1;},这样的好处是避免编码问题,同时能得到所有的主流浏览器的支持。
  5. 使用正确的字体种类写法,避免使用引号,这样可以缩小CSS的大小。中文字体可以按上一条方式来编写。

未来

  1. 通过对中英文及符号混排的测试, 我发现微软雅黑其实表现相当不错,包括英文数字和英文字符以及在IE6和IE7的显示效果上,但唯一的遗憾是在XP下如果安装了微软雅黑字体的用户没有打 开“使用屏幕字体的边缘平滑”选项的话,在Firefox、Safari和Opera、特别是IE6下会非常模糊难以辨认。针对这个问题目前并没有很好的 解决方案,所以只有等到IE6使用比率非常小的时候才可能正式的使用它。或许需要到2014年,XP死掉的时候。
  2. 虽然很早就有了@font-face,但是浏览器的支持、网速和商业问题,导致它很少被应用。最近关于字体的好消息是Firefox3.6将支持Web Open Font Forma。关于Web字体未来的相关信息可以看Web 字体的未来关于 Web 字体:现状与未来再谈 Web 字体的现状与未来

转载于:https://my.oschina.net/yaohaixiao/blog/123089

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSS可以通过使用 font-family 属性来更改浏览器的默认字体样式。浏览器通常会根据操作系统的默认设置来显示文本,所以不同的浏览器可能会有不同的默认字体样式。 为了去除浏览器的默认字体样式,可以将 font-family 属性设置为一个特定的字体名称或字体族。例如,可以使用以下CSS代码来去除浏览器的默认样式: ``` body { font-family: Arial, sans-serif; } ``` 在这个例子中,字体名称 Arial 被指定为要应用于文本的首选字体。如果 Arial 不可用,浏览器将尝试使用 sans-serif 字体族中的任何可用字体。 通过使用特定的字体名称或字体族,可以确保浏览器不再使用默认的操作系统字体。这可以使网页设计师有更大的控制权,确保他们的网站在不同的浏览器中都具有一致的字体样式。 还可以通过其他CSS属性,如 font-size、font-weight 和 font-style 来更改文本样式。这些属性可以与 font-family 属性一起使用,以获得所需的字体样式。 总之,通过使用 font-family 属性,并指定一个特定的字体名称或字体族,可以轻松地去除浏览器的默认字体样式,并在网页中应用自定义的字体样式。 ### 回答2: 要去除浏览器的默认字体样式,可以通过设置CSS样式来实现。一般来说,不同的浏览器会有不同的默认字体样式。 首先,我们可以将`font-family`属性设置为一个特定的字体家族或者一个无字体样式的值,比如`sans-serif`,这样能够确保网页在不同的浏览器上显示一致的字体。例如: ```css body { font-family: sans-serif; } ``` 另外,为了确保字体大小一致,我们可以将`font-size`属性设置为一个具体的像素值或者一个相对值(如百分比)来避免默认字体大小的影响。例如: ```css p { font-size: 16px; } ``` 此外,我们还可以使用`font-weight`属性设置字体的粗细,以及使用`font-style`属性设置字体样式。例如: ```css h1 { font-weight: bold; } em { font-style: italic; } ``` 最后,如果需要在整个页面或者特定区域设置的样式,可以使用`*`选择器来选择所有元素,然后将需要修改的字体属性设置为合适的值。例如: ```css * { font-family: sans-serif; font-size: 16px; } ``` 通过以上的CSS样式设置,我们可以去除浏览器的默认字体样式,将字体样式统一并控制在自己设定的范围内,达到更好的页面展示效果。 ### 回答3: 要去除浏览器默认字体样式,可以使用CSS中的font-family属性来设置自定义字体,从而覆盖浏览器的默认样式。 首先,我们可以将全局选择器(Global Selector)用于整个网页,来设置默认字体样式。例如,将字体设置为sans-serif(无衬线字体)或serif(衬线字体)。 ```css * { font-family: sans-serif; } ``` 这样,所有的元素都会应用这个字体样式。如果只想去除特定元素的默认字体样式,可以通过选择器来针对性地设置字体样式。 另外,可以通过使用CSS的reset样式表来重置所有浏览器的默认样式,包括字体样式。这样可以确保在不同浏览器中都具有一致的字体样式。 ```css /* Reset Stylesheet */ body, p, h1, h2, h3, h4, h5, h6, ul, ol, li { margin: 0; padding: 0; font-family: sans-serif; } ``` 此外,还可以使用@font-face规则加载自定义字体文件(如Web字体),并将其应用于网页中的元素。这样可以完全自定义字体样式,不受浏览器默认样式的影响。 ```css @font-face { font-family: 'CustomFont'; src: url('customfont.woff') format('woff'); } body { font-family: 'CustomFont', sans-serif; } ``` 通过以上方法,我们可以有效地去除浏览器的默认字体样式,并设置自定义的字体样式,以实现更好的网页视觉效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值