font-family 定义的最后为什么要加一句sans-serif

定义font-family时,最好在最后加一个sans-serif,这样如果所列出的字体都不能用,则默认的sans-serif字体能保证调用;

W3C建议字体定义的时候,最后以一个类别的字体结束,例如"sans-serif",以保证在不同操作系统下,网页字体都能被显示。

sans-serif就是无衬线字体,是一种通用字体族。
常见的无衬线字体有 Trebuchet MS, Tahoma, Verdana, Arial, Helvetica, 中文的幼圆、隶书等等。
font-family最后加上sans-serif,也是为了保证能够调用这个字体族里面的字体,因为大多数计算机里都有这种字体。

sans-serif无衬线字体,是一类字体,它在操作系统或者浏览器里是可以设置的,你可以把它设置成宋体,也可以设置成微软雅黑,而设置的这种字体肯定是当前系统里存在的字体,所以使用这个字体就一肯能显示出来,所以加上sans-serif就能保证调用。
 
时间: 2024-10-18 06:03:40

font-family 定义的最后为什么要加一句sans-serif的相关文章

从function的定义看JavaScript的预加载

在JavaScript中定义一个函数,有两种写法: function ftn(){} // 第一种 var ftn = function(){} // 第二种 有人说,这两种写法是完全等价的.但是在解析前,前一种写法会被解析器自动提升到代码的头部,因此违背了函数先定义后使用的原则,所以建议定义函数时候,全部采用后一种写法.缙云县外国专家局 看完这句话,我第一个感觉是两个在使用时候是完全一致的,只是解析上有所差异.但是他的解释“前一种写法会被解析器自动提升到代码的头部”让我很困惑. 如是我有了下面

在每个类声明之后、每个函数定义结束之后都要加空行。

1 #include <iostream> 2 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 4 using namespace std; 5 //函数原型语句 6 int abs(int x); 7 long abs(long x); 8 float abs(float x); 9 10 //main()函数的定义

C标准预定义宏,调试时加打印很有用

#include<stdio.h> int main(int argc, char *argv[]) { printf("File:[%s]\r\n", __FILE__); printf("Function:[%s]\r\n", __FUNCTION__); printf("LineNum:[%d]\r\n", __LINE__); printf("Data:[%s]\r\n", __DATE__); print

C标准提前定义宏,调试时加打印非常实用

#include<stdio.h> int main(int argc, char *argv[]) { printf("File:[%s]\r\n", __FILE__); printf("Function:[%s]\r\n", __FUNCTION__); printf("LineNum:[%d]\r\n", __LINE__); printf("Data:[%s]\r\n", __DATE__); print

jdk1.8新特性 : 接口中可以有普通方法(非静态方法)和静态方法 , 颠覆了之前我的理解 : 接口中只能有共有常量和抽象方法的概念,后面必须要加一句jdk1.7和1..7之前

看到jdk某些接口中存在default方法,于是... http://shaomeng95.iteye.com/blog/998820    为什么接口只能是公有常量? public interface Jdk8新特性 { public static final String AA = "hhe"; default void test(){ System.out.println("哈哈"); } public static void hehe(){ System.o

关于Python和Java的多进程多线程计算方法对比

原文请见 关于Python和Java的多进程多线程计算方法对比 搞大数据必须要正视的一个问题就是并行计算.就像执行一件任务一样,大伙一起同时干,才有效率,才会很快出成果.正所谓"众人拾柴火焰高"~ 对于并行计算,有很多高大上的概念,我也不全懂.这里就单单罗列一下我对于多进程和多线程计算的理解和总结. 在计算机中,处理一个任务,可以在一个进程中,也可以在一个线程中,确切的说,执行的话都得靠一个个线程来.在我们做某件事的时候,往往需要同时干多个任务才能达到我们所要的效果,比如说看电影,就要

字体下载大宝库:12款好看的免费英文字体

互联网上90%的信息是文本形式的,这就是设计师为什么不断的创造漂亮的字体,让网站中的的内容更加美观.此外,还有大量的印刷为基础的项目,其中的字体都是关键因素.今天这个列表中,我们选择了21款免费的英文字体分享给设计师们. 您可能感兴趣的相关文章 字体大宝库:10款有趣的精美节日字体 分享20款很漂亮的免费英文LOGO字体 字体大宝库:20款充满艺术感英文字体 推荐20款免费的又好看的英文手写字体 向设计师推荐20款好看的英文装饰字体 Gilroy Typefamily Fredoka Free

浏览器加载和渲染HTML的过程(标准定义的过程以及现代浏览器的优化)

先看一下标准定义的浏览器渲染过程(网上找的): 浏览器打开网页的过程 用户第一次访问网址,浏览器向服务器发出请求,服务器返回html文件: 浏览器开始载入html代码,发现 head 标签内有一个 link 标签引用外部CSS或JS文件: 浏览器又发出CSS及JS文件的请求,服务器返回这个CSS,JS文件: 浏览器继续载入html中 body 部分的代码,并且CSS,JS文件已经拿到手了,可以开始渲染页面了: 浏览器在代码中发现一个 img 标签引用了一张图片,向服务器发出请求.此时浏览器不会等

Ogre参考手册(七)3.4 表层(overlay),3.5 字体定义

3.4 表层(Overlay) 表层脚本用于通过脚本定义表层.同时,你仍可以在代码中通过SceneManager\Overlay\OverlayElement等类设置表层,不过那么做显的比较笨.作为代替,你可以将表层定义在文本文件中并在需要的时候加载. 表层脚本在初始化时加载,默认为所有公共资源位置(Root::addResourceLocation)下的’.overlay文件.你可以通过OverlayManager::getSingleton().parseAllSources方法加载自定义扩