您现在的位置是:网站首页> 编程资料编程资料
浅谈CSS字体的加载加速问题通过css加载远程字体示例代码详解CSS中的字体属性的使用举例详解CSS中的字体尺寸设置
2021-09-05
693人已围观
简介 这篇文章主要介绍了CSS字体的加载加速问题,主要针对使用CSS中5种通用字体以外的情况,需要的朋友可以参考下
除了各种特定字体系列外(如 Times、Verdana、Helvetica 或 Arial),CSS定义了 5 种通用字体系列:
Serif 字体
这些字体成比例,而且有上下短线。如果字体中的所有字符根据其不同大小有不同的宽度,则成该字符是成比例的。例如,小写 i 和小写 m 的宽度就不同。上下短线是每个字符笔划末端的装饰,比如小写 l 顶部和底部的短线,或大写 A 两条腿底部的短线。Serif 字体的例子包括 Times、Georgia 和 New Century Schoolbook。
Sans-serif 字体
这些字体是成比例的,而且没有上下短线。Sans-serif 字体的例子包括 Helvetica、Geneva、Verdana、Arial 或 Univers。
Monospace 字体
Monospace 字体并不是成比例的。它们通常用于模拟打字机打出的文本、老式点阵打印机的输出,甚至更老式的视频显示终端。采用这些字体,每个字符的宽度都必须完全相同,所以小写的 i 和小写的 m 有相同的宽度。这些字体可能有上下短线,也可能没有。如果一个字体的字符宽度完全相同,则归类为 Monospace 字体,而不论是否有上下短线。Monospace 字体的例子包括 Courier、Courier New 和 Andale Mono。
Cursive 字体
这些字体试图模仿人的手写体。通常,它们主要由曲线和 Serif 字体中没有的笔划装饰组成。例如,大写 A 再其左腿底部可能有一个小弯,或者完全由花体部分和小的弯曲部分组成。Cursive 字体的例子包括 Zapf Chancery、Author 和 Comic Sans。
Fantasy 字体
这些字体无法用任何特征来定义,只有一点是确定的,那就是我们无法很容易地将其规划到任何一种其他的字体系列当中。这样的字体包括 Western、Woodblock 和 Klingon。
理论上讲,用户安装的任何字体系列都会落入到上述某种通用系列中,但实际上可能并非如此,不过例外情况(如果有的话)往往很少。
然而,似乎大多数网站使用非默认字体的这些天,但是谁能怪他们呢?系统字体都是很枯燥的,使用自定义字体能为一个网站增色不少。使用自定义字体所带来的问题就是,会延缓你站点的加载。字体文件比较大,可能需要单独的字体文件,粗体和斜体,并阻止渲染,如果开发商不解决它们。让我告诉你一个更快速加载的方法。
1. 把字体放在CDN上
为提高网站的速度,一个简单的解决方案是使用CDN,这对字体来说没有什么差别。重要的是要确保CDN有适当的CORS设置
# Apache config
Header set Access-Control-Allow-Origin "*"
# nginx config
if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){
add_header Access-Control-Allow-Origin *;
}
如果CDN的CORS设置不正确的话,你会看到AJAX/跨域错误控制台。
2.使用非阻塞加载CSS
实质上是使用media=none让我们在浏览器下载样式表而不会阻塞渲染,所以当样式表加载,media设置其所需的设置就会呈现在屏幕
3.单独的字体选择器
如果字体使用时没有被加载完,用户将看到空白,直到字体加载。这,当然不是一件好事,如果字体加载失败。最起码,用户将会在空白的地方盯着几秒钟。最好是配合被添加到body的字体加载后声明自定义字体:
- h1 { font-family: Arial, serif; } /* 系统字体 */
- .fontsloaded h1 { font-family: 'MySpecialFont', serif; } /* 自定义字体 */
- "fonts.css" onload="document.body.className+=' fontsloaded';" rel="stylesheet" type="text/css" >
通过使用字体声明以上策略,系统加载字体最初只有在自定义加载字体将被启用,因此屏幕不会显示任何一段时间空内容。我建议创建一个Stylus/Sass/Less的混合设置字体设置,自定义选择器自动设置。
相关内容
- 简要总结CSS编程中的响应式设计CSS的一些编程规范总结10个必备的CSS技巧总结CSS清除浮动方法总结css 调试方法与经验总结CSS多浏览器兼容总结(个人经验)CSS样式的基础学习总结深入CSS3 动画效果的总结详解IE下css常见问题总结及解决CSS(Cascading Style Sheet)级联样式表常用术语总结CSS学习总结
- div+css实现仿淘宝的产品分类菜单效果代码div+css实现仿猪八戒首页导航菜单效果DIV+CSS实现的黑色回转悬浮下拉二级菜单动态特效源码css实现div在下拉菜单之上符合标准的div css制作的弹出菜单-CSS教程-网页制作-网页教学网DIV CSS制作的个性水平导航菜单实例-CSS教程-网页制作-网页教学网CSS DIV制作梯形状的不规则网站导航-CSS教程-网页制作-网页教学网淘宝导航栏css代码分享
- div+css实现仿猪八戒首页导航菜单效果DIV CSS制作的个性水平导航菜单实例-CSS教程-网页制作-网页教学网CSS DIV制作梯形状的不规则网站导航-CSS教程-网页制作-网页教学网DIV+CSS实现的天猫知名商家店铺导航汇总页面效果源码div+css纵向导航如何实现且为导航添加超链接DIV+CSS实现的黑色回转悬浮下拉二级菜单动态特效源码css实现div在下拉菜单之上符合标准的div css制作的弹出菜单-CSS教程-网页制作-网页教学网
- CSS的注释部分编程引申CSS注释的一些高级用法CSS条件注释详解(根据不同浏览器加载CSS)常用css样式属性大全(中文注释)
- 使用CSS3来实现滚动视差效果的教程CSS3 background-image颜色渐变的实现代码CSS3混合模式mix-blend-mode/background-blend-mode简介css3实现一个div设置多张背景图片及background-image属性实例演示CSS的background属性及CSS3的背景图片设置总结CSS3属性background-size使用指南css3中背景尺寸background-size详解详解background属性的8个属性值(面试题)
- CSS中行高line-height属性的一些使用技巧CSS中的line-height行高属性学习教程深入理解CSS height属性设置元素的高度CSS中的line-height行高属性的使用技巧小结css line-height属性的使用技巧css属性行高line-height的用法详解css height属性中的calc方法详解
- 利用column多列属性调整页面文字列布局基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享CSS3 Columns分列式布局方法简介
- 详解CSS3中使用gradient实现渐变效果的方法使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
- CSS属性简写和选择器的优先级问题 CSS属性简写整理CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
- CSS中的font-size属性使用教程