整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

前端_CSS的字体

页面总少不了字体吧,字体还有家族font-family,那好吧

字体格式

TTF

TTF (TrueType Font) 字体格式是由苹果和微软为 PostScript 而开发的字体格式。在 Mac 和 Windows 操作系统上,TTF 一直是最常见的格式,所有主流浏览器都支持它。然而,IE8 不支持 TTF;且 IE9 上只有被设置成 "installable" 才能支持(译注:别想了,转别的格式吧)。

TTF 允许嵌入最基本的数字版权管理标志————内置标志可以告诉我们字体作者是否允许改字体在 PDF 或者网站等处使用,所以可能会有版权问题。另一个缺点是,TTF 和 OTF 字体是没压缩的,因此他们文件更大。

OTF

OTF (OpenType Font) 由 TTF 演化而来,是 Adobe 和微软共同努力的结果。OTF 字体包含一部分屏幕和打印机字体数据。OTF 有几个独家功能,包括支持多平台和扩展字符集。OTF 字体可以在 Macintosh 和 Windows 系统上使用。

OTF 也允许多达 65000 个字符的存储。这个额外的空间让设计师可以自由地添加附加元素,比如小帽子、老式数字体、代替的字符和其他一些以前必须作为独立字体分发的附加材料。

实践

1、CSS引入TTF或OTF文件

@font-face {
    font-family: HansKendrick-Regular;
    src:url('../fonts/HansKendrick-Regular.otf');
}

备注:
otf文件由设计同学提供或自行下载。
url使用的是相对路径。绝对路径测不管是放在public还是src下均没有测试成功。

2、CSS样式的使用

    font-family: 'HansKendrick-Regular';  
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 17px;
    text-align: center;
    color: rgba(255, 255, 255, 0.8);

备注:以上是样例,根据实际情况配置即可。


资料来源:

  • https://developer.mozilla.org/zh-CN/docs/Web/CSS/@font-face
  • https://zhuanlan.zhihu.com/p/28179203
  • https://zhongguo.eskere.club/otf-%E4%B8%8E-ttf-%E5%AD%97%E4%BD%93%EF%BC%9A%E5%93%AA%E4%B8%AA%E6%9B%B4%E5%A5%BD%EF%BC%9F%E6%9C%89%E4%BB%80%E4%B9%88%E4%B8%8D%E5%90%8C%EF%BC%9F/2021-07-15/
  • https://www.jianshu.com/p/b85b27715e1b
  • https://www.fontspring.com/

SS字体属性定义字体,加粗,大小,文字样式。


serif和sans-serif字体之间的区别

在计算机屏幕上,sans-serif字体被认为是比serif字体容易阅读


CSS字型

在CSS中,有两种类型的字体系列名称:

  • 通用字体系列 - 拥有相似外观的字体系统组合(如 "Serif" 或 "Monospace")

  • 特定字体系列 - 一个特定的字体系列(如 "Times" 或 "Courier")

Generic family字体系列说明
SerifTimes New RomanGeorgiaSerif字体中字符在行的末端拥有额外的装饰
Sans-serifArialVerdana"Sans"是指无 - 这些字体在末端没有额外的装饰
MonospaceCourier NewLucida Console所有的等宽字符具有相同的宽度

字体系列

font-family 属性设置文本的字体系列。

font-family 属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下一种字体。

注意: 如果字体系列的名称超过一个字,它必须用引号,如Font Family:"宋体"。

多个字体系列是用一个逗号分隔指明:

实例

p{font-family:"Times New Roman", Times, serif;}

对于较常用的字体组合,看看我们的 Web安全字体组合。


字体样式

主要是用于指定斜体文字的字体样式属性。

这个属性有三个值:

  • 正常 - 正常显示文本

  • 斜体 - 以斜体字显示的文字

  • 倾斜的文字 - 文字向一边倾斜(和斜体非常类似,但不太支持)

实例

p.normal {font-style:normal;}

p.italic {font-style:italic;}

p.oblique {font-style:oblique;}


字体大小

font-size 属性设置文本的大小。

能否管理文字的大小,在网页设计中是非常重要的。但是,你不能通过调整字体大小使段落看上去像标题,或者使标题看上去像段落。

请务必使用正确的HTML标签,就<h1> - <h6>表示标题和<p>表示段落:

字体大小的值可以是绝对或相对的大小。

绝对大小:

  • 设置一个指定大小的文本

  • 不允许用户在所有浏览器中改变文本大小

  • 确定了输出的物理尺寸时绝对大小很有用

相对大小:

  • 相对于周围的元素来设置大小

  • 允许用户在浏览器中改变文字大小

如果你不指定一个字体的大小,默认大小和普通文本段落一样,是16像素(16px=1em)。


设置字体大小像素

设置文字的大小与像素,让您完全控制文字大小:

实例

h1 {font-size:40px;}

h2 {font-size:30px;}

p {font-size:14px;}

上面的例子可以在 Internet Explorer 9, Firefox, Chrome, Opera, 和 Safari 中通过缩放浏览器调整文本大小。

虽然可以通过浏览器的缩放工具调整文本大小,但是,这种调整是整个页面,而不仅仅是文本


用em来设置字体大小

为了避免Internet Explorer 中无法调整文本的问题,许多开发者使用 em 单位代替像素。

em的尺寸单位由W3C建议。

1em和当前字体大小相等。在浏览器中默认的文字大小是16px。

因此,1em的默认大小是16px。可以通过下面这个公式将像素转换为em:px/16=em

实例

h1 {font-size:2.5em;} /* 40px/16=2.5em */

h2 {font-size:1.875em;} /* 30px/16=1.875em */

p {font-size:0.875em;} /* 14px/16=0.875em */

尝试一下 »

在上面的例子,em的文字大小是与前面的例子中像素一样。不过,如果使用 em 单位,则可以在所有浏览器中调整文本大小。

不幸的是,仍然是IE浏览器的问题。调整文本的大小时,会比正常的尺寸更大或更小。


使用百分比和EM组合

在所有浏览器的解决方案中,设置 <body>元素的默认字体大小的是百分比:

实例

body {font-size:100%;}

h1 {font-size:2.5em;}

h2 {font-size:1.875em;}

p {font-size:0.875em;}

我们的代码非常有效。在所有浏览器中,可以显示相同的文本大小,并允许所有浏览器缩放文本的大小。

更多实例

设置字体加粗

这个例子演示了如何设置字体的加粗。

可以设置字体的转变

这个例子演示了如何设置字体的转变。

在一个声明中的所有字体属性

本例演示如何使用简写属性将字体属性设置在一个声明之内。


所有CSS字体属性

Property描述
font在一个声明中设置所有的字体属性
font-family指定文本的字体系列
font-size指定文本的字体大小
font-style指定文本的字体样式
font-variant以小型大写字体或者正常字体显示文本。
font-weight指定字体的粗细。

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!

SS属性值 字体与文本

网页设计中有很多的文字要去处理,标题、段落、文章、列表以及表单中的文本。这一篇章我们讨论一下HTML中的字体与文本

字体

首先要有一个认识字体和文本不是一个东西哦。字体是不同的文本体式或者可以说是字的形体结构。对于英文来说有很多种不同的样式包括字母、数字和符号组成的。

文本指的是通过文本属性描述对文本的处理方式。行高,字符间距,缩进等。

那么网页中的字体是哪里来的呢?其中有哪些属性?文本属性中有哪些小秘密呐?

来源

  • 用户机器中安装的字体

  • 保存在第三方网站上的字体(link)

  • 保存在服务器上的字体。这些字体可以使用@font-face规则随网页一起发给浏览器(一般字体图片都会放到一个单独的服务器上,更加的优化)

字体属性

font-family

字体族

font-family用于设定元素中的文本使用什么字体。通常给一个文档页面设置一个主字体(因为font-family是可以继承的),然后针对那些需要使用不用样式的字体在单独应用font-family。

因为字体来源我们已经知道了,两条路径要么是用户机器,要么是网上,那么就存在某种字体不能再某个网页中使用的可能。所以需要给出一组字体,这组字体叫做字体栈

简单的来说就是就是预备队,如果用户机器上没有某种字体,预备的字体就用作用了,用户还可以使用另一种字体阅读。

/*
	font-family的值不区分大小写 但是如果引入的是在线字体库请不要随意修改
	有可能导致无法使用提供的定制字体
*/
body{font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;}

font-size

字体大小

浏览器样式表默认为每个HTML元素都设定了font-size,言外之意是我们在设置font-size的时候其实是在修改默认值。字体大小的单位px、%、em。但是有一个很重要的点是字体的大小也是可以去继承的这个地方可能会出现一些未知的错误。

px是一个很常见的单位,em也是一个单位有什么区别呢?

px是绝对单位,em是一种相对单位与百分比是一样的,浏览器默认样式表在设定所有元素的字体大小时使用的都是相对单位em,h1被设定为2em,h2是1.5em,p是1em。默认情况下1em = 16px。这也是font-size的基准大小。

example 1

1
2
3
4
5
6
7
8
9
10
11
<style>
 /* h1此时2em */
 body{font-size: 200%;}
 /* h1此时应该是多少呢? */
 body{font-size: 20px;}
 p{font-size: 16px;}
</style>
<body>
 <h1>我是谁</h1>
 <p>font-size</p>
</body>


tip:其它的以绝对单位设定的会重新设定字体的大小,不会产生继承。同时我们在设定的时候可以选择关键字值,比如x-small,medium,x-large等等 ,当然用的很少,你会在浏览器看到medium感兴趣的可以去观察一下吧。

example 2

1
2
3
4
5
6
7
<style>
 /* span的字体大小是多少呢? */
 p{font-size: 80%;}
</style>
<body>
 <p>我是<span>小贵</span></p>
</body>

example 3

1
2
3
4
5
6
7
8
9
10
<style>
 /* h1的字体大小是多少呢? */
 /* span的字体大小是多少呢? */
 body{font-size: 150%;}
 p{font-size: 80%;}
</style>
<body>
 <h1>我是小小</h1>
 <p>我是<span>小小</span></p>
</body>

tip:使用绝对单位的好处是,在祖先元素的字体大小变化时,不会出现意外的连锁反应。

font-style

字体样式

描述
normal默认值。浏览器显示一个标准的字体样式。
italic浏览器会显示一个斜体的字体样式。(斜体代表强调含义所以还是用em)
oblique浏览器会显示一个倾斜的字体样式。
inherit规定应该从父元素继承字体样式。

font-weight

字体粗细

这个貌似没什么好说的,还是过了吧。主要一点最好使用bold,normal当然strong标签是加粗的状态,你们应该懂我的意思。

font-variant

字体变化

描述
normal默认值。浏览器会显示一个标准的字体。
small-caps浏览器会显示小型大写字母的字体。
inherit规定应该从父元素继承 font-variant 属性的值。

font

简写,复合写法

强调两个规则

rule

  • 必须声明size与family。

  • 顺序 font-weight、font-style、font-variant随意调换,其次font-size,font-family。

  • 同时还可以设置行高 font:bold italic small-caps 16px/1.5 ‘Microsoft yahei’ 16px/1.5的这个1.5代表的是倍数。

今天就分享到这,明天在分享!

如果你们想要了解或者想要深入学习java和web可以进我的群里进行交流学习,群号:web330336289,java644038439。欢迎我们进去交流学习,我们一同学习一同行进,我觉得程序员不应该中止脚步,而是一向在学习的道路上一向行进。

编码:天弘