要点总结
- CSS 的
@font-face
规则允许在网页设计中使用自定义字体,从而提升性能并改善排版效果。务必在不同的操作系统和浏览器上测试这些自定义字体,以确保其正确显示。 - CSS 的
unicode-range
属性可用于限制自定义字体应用的字符范围。这对于直接在标记中添加特殊字符或符号,或对特定字符使用特殊字体特别有用。 - 通过使用
unicode-range
属性,您可以通过确保仅下载和使用必要的字符来提高网页性能,从而减少需要加载的数据量。但是,需要注意的是,并非所有浏览器都支持此属性,因此应在 CSS 代码中提供备用字体。
视频讲解(文字稿节选)
上一节我们学习了各种文本样式属性。
在现代浏览器(以及 IE4 及更高版本)中,我们可以添加自定义字体来增强网站的设计。
我们可以利用这些自定义字体的各种功能来帮助提升性能并整体改善排版效果。
本节我们将学习:
-
@font-face
规则详解 - 如何使用字体堆栈和
unicode-range
控制排版
@font-face
过去,网页上的字体选择仅限于少量“网络安全”字体,例如:
- Arial
- Comic Sans
- Courier New
- Georgia
- Impact
- Palatino
- Tahoma
- Times New Roman
- Trebuchet
- Verdana
其中一些字体非常优秀,非常适合网页使用——Georgia 作为衬线字体,Arial 或 Verdana 都是很棒的字体。Comic Sans 当然不是最好的……
但现在,我们可以使用各种自定义字体,并通过使用 @font-face
使其在所有浏览器上显示。
虽然我们可以这样做,但始终值得在一系列操作系统和浏览器上测试任何自定义字体,以确保它们看起来符合预期。
还要记住,字体文件的大小可能相当大,因此请明智地使用它们以避免性能问题。
@font-face
的语法如下所示:
@font-face { font-family: 'Baskerville'; src: url('baskerville.eot?#iefix') format('embedded-opentype'); url('baskerville.woff') format('woff'); url('baskerville.ttf') format('truetype'); url('baskerville.svg#Baskerville') format('svg'); }
字体使用 font-family
属性命名,然后为不同的浏览器提供一系列不同的文件类型和格式。
为了避免用户下载系统中已有的字体,可以指定要搜索的字体的本地名称 local()
。
为了为不同的浏览器创建所有正确的字体格式,我使用了一个名为 Font Squirrel 的很棒的在线资源。
他们有一个网络字体生成器,它运行得非常好。他们提供的下载还包含在 CSS 中添加这些自定义字体的所有代码片段,这也很方便!
unicode-range
字体的每个字符都可以用其 Unicode 数字来描述,其形式为:
@font-face { font-family: 'Baskerville'; src: url('baskerville.eot?#iefix') format('embedded-opentype'); url('baskerville.woff') format('woff'); url('baskerville.ttf') format('truetype'); url('baskerville.svg#Baskerville') format('svg'); }
字符串“AtoZ CSS”可以用 Unicode 表示如下:
<code>U+0041</code>
包括空格在内的每个字符都有唯一的 Unicode 数字。UTF-8 字符集中还包含一系列特殊的字符,这对于直接在标记中添加形状和符号非常有用。
在使用 @font-face
添加自定义字体时,我们可以限制它们应用的字符范围,这乍一看有点奇怪,但请耐心听我解释。
Baskerville 字体的斜体&符号非常漂亮,许多设计师即使不使用 Baskerville 字体的其余部分,也喜欢使用它。
只对&符号使用这种特殊字体的一种方法是将其包装在 <span></span>
标签中,并为其设置不同的 font-family
。但这有点麻烦,并且完全可以在没有任何额外标记的情况下完成。
我们可以创建一个只包含此字符的字体,并将其作为列表中的第一个字体添加到我们的字体堆栈中。
当浏览器遇到字体中不存在的字符时,它将向下扫描堆栈,直到找到包含所需字符的字体为止。我们可以利用这种行为在使用任何自定义或网络安全字体时添加特殊的&符号。
首先,我们创建 @font-face
规则来加载单个字符字体。我将为其命名为“Ampersand”,并使用本地字体文件源以节省带宽。
我将 unicode-range
指定为 U 0026,用于单个&符号字符。可以指定整个字符范围,正如属性名称所示,但在这种情况下只需要一个字符。
<code>A t o Z space C S S U+0041 U+0074 U+006F U+005A U+0020 U+0043 U+0053 U+0053</code>
在这个示例 HTML 文件中,我有一系列标题和段落,两者都包含几个&符号。
我将创建两个不同的字体堆栈,一个用于标题,一个用于正文。在每种情况下,堆栈中的第一个字体都将是自定义的“Ampersand”字体。
对于标题,我将添加 Museo 或 Rockwell 或衬线字体作为备用字体。
对于正文,我将添加 Avenir、Arial 或 sans-serif 作为备用字体。
@font-face { font-family: 'Ampersand'; src: local('Baskerville-italic'); unicode-range: U+0026; }
就是这样。当浏览器呈现文本时,堆栈中的第一个字体仅包含一个&符号字符,因此它将使用列表中的下一个字体(如果找到)来呈现其余字符。
unicode-range
的浏览器支持良好。它在所有现代浏览器(Firefox 除外)以及 IE9 及更高版本中受支持。由于这纯粹是视觉增强,因此浏览器支持对我来说不是什么大问题——不支持的浏览器只会获得可以成功加载的堆栈中的第一个字体。
(后续的FAQ部分已省略,因为与伪原创目标不符,且篇幅过长。核心内容已在以上部分体现。)
以上是ATOZ CSS屏幕截图:Unicode范围和 @font-face的详细内容。更多信息请关注PHP中文网其他相关文章!

我知道,我知道:有大量的内容管理系统选项可用,而我进行了几个测试,但实际上没有一个是一个,y&#039;知道吗?怪异的定价模型,艰难的自定义,有些甚至最终成为整个&

链接CSS文件到HTML可以通过在HTML的部分使用元素实现。1)使用标签链接本地CSS文件。2)多个CSS文件可通过添加多个标签实现。3)外部CSS文件使用绝对URL链接,如。4)确保正确使用文件路径和CSS文件加载顺序,优化性能可使用CSS预处理器合并文件。

选择Flexbox还是Grid取决于布局需求:1)Flexbox适用于一维布局,如导航栏;2)Grid适合二维布局,如杂志式布局。两者在项目中可结合使用,提升布局效果。

包含CSS文件的最佳方法是使用标签在HTML的部分引入外部CSS文件。1.使用标签引入外部CSS文件,如。2.对于小型调整,可以使用内联CSS,但应谨慎使用。3.大型项目可使用CSS预处理器如Sass或Less,通过@import导入其他CSS文件。4.为了性能,应合并CSS文件并使用CDN,同时使用工具如CSSNano进行压缩。

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版
视觉化网页开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

WebStorm Mac版
好用的JavaScript开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境