当前位置: 首页 > 知识库问答 >
问题:

在响应式css中使用系统字体

张晔
2023-03-14

随着我深入研究下一个响应式网站,我正在探索手机版本使用系统字体的选项。我想知道一些事情。

第一个问题是,如果我们指定设备上的字体(例如系统字体),但我们也需要Open SAN(我们的默认正文字体),那么设备还会下载Open SAN字体文件吗?在字体系列声明中,打开的SAN将列在系统字体之后。

<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:400,600">
<style type="text/css">
    body { font-family: roboto, segoe, helvetica, 'open sans', sans-serif; }
</style>

或者作为@font-face调用。

<style type="text/css">
    @font-face {font-family:OpenSans; src: url('https://fonts.gstatic.com/s/opensans.woff'); }
    body { font-family: roboto, segoe, helvetica, 'open sans', sans-serif; }
</style>

如果这种类型的设置确实消除了下载字体,从而减少了查看网页的数据使用,我想知道是否有人知道系统字体的技术方面。特别是,在css丰特家族声明中将使用哪些名称?较新的机器人很容易,因为它的名字只是“机器人”,但是我们如何在视窗手机上宣布Segoe或者在苹果手机和苹果平板电脑上宣布Helvetica Neue/Lucinda。以及如何确定存在哪些字体权重及其值(我们使用400

用我们的解决方案更新问题......

这真的有一个糟糕的答案,我们只是将主体css设置为最初使用系统字体(移动优先css),然后当我们到达笔记本电脑和台式机的断点时,使用@font-face调用打开SAN并更新主体css以使用它。

共有3个答案

左丘善
2023-03-14

如果你声明,比如,body{font家族:roboto,segoe,helvetica,'open sans',sans serif;}并且用户的设备安装了一种名为roboto的字体,它包含内容中所有字符的字形,那么字体系列列表的其余部分应该被忽略。这意味着,如果其中一些字体被声明为具有@font-face(直接或间接使用谷歌提供的代码)的可下载字体,则不应进行下载。但是,如果该字体中没有任何字符,则应进一步处理该列表,如果列表中前面的字体不包含该字符,则应下载字体。

在实践中,浏览器可能会以不同的方式实现这一点,例如,他们可能总是加载可下载的字体,或者如果系统中存在列表中的任何前面的字体,即使它没有覆盖所有字符,他们也可能无法下载。您需要为每个浏览器组织适当的测试,以查看它们的行为。一般来说,如果你声明了一种可下载的字体,你应该期待它被下载,并且你应该把它放在font-family列表的第一位,以确保这一点。

关于特定的字体名称,声明segoe是无用的。没有这样的字体Segoe UI存在于许多Windows系统中。helvetica这个名字原则上意味着一种仅在苹果设备上可用的字体,但实际上,奇怪的是,Windows将其理解为Arial,除非系统实际安装了helvetica。声明无衬线是无用的;没有这样的字体;您可能指的是无衬线,这是系统相关的无衬线字体的有效名称。

咸臻
2023-03-14

这个css片段(借用自github上的问题)默认为系统字体,在大多数平台上(OSX,iOS,Windows,Windows Phone,Android,Ubuntu):

font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu;
    >代码> Apple Stase<代码> -旧金山在Safari(Mac OS X和IOS上);Neue Helvetica和Lucida Grande在旧版Mac OS X上的应用。

在这篇关于css技巧的文章中可以找到其他操作系统或旧版本的字体。

洪成济
2023-03-14

我发现以下字体系列设置为我提供了所有移动设备上的默认系统字体:

font-family: system,-apple-system,".SFNSText-Regular","San Francisco",Roboto,"Segoe UI","Helvetica Neue","Lucida Grande",sans-serif;
 类似资料:
  • 我使用Zurb Foundation3网格创建了一个站点。每个页面都有一个大的: null null 当我将浏览器的大小调整为移动大小时,大字体不会调整,并导致浏览器包括一个水平滚动以适应大文本。 我注意到,在Zurb Foundation 3排版示例页面上,头适应浏览器的压缩和扩展。 我是不是错过了一些很明显的东西?我如何实现这一点?

  • 主要内容:设置 meta 标签,媒体查询CSS 响应式布局也称自适应布局,是 Ethan Marcotte 在 2010 年 5 月份提出的一个概念,简单来讲就是一个网站能够兼容多个不同的终端(设备),而不是为每个终端做一个特定的版本。这个概念是为解决移动端浏览网页而诞生的。响应式布局能够为使用不同终端的用户提供很好的用户体验,而且随着大屏智能手机的普及,用“大势所趋”来形容也不为过。 要实现响应式布局,常用的方式有以下几种: 使用 C

  • 响应事件 function onResponse(Request $request,Response $response); 在任何的控制器响应结束后,均会执行该事件,该事件预留于做分析记录。例如结合onRequest事件做慢日志记录。 function onRequest(Request $request, Response $response) { // TODO: Implement

  • 左一个如果固定大小,右一个应该是响应的,应该有最小和最大宽度,这意味着如果你收缩窗口宽度,右div应该只是收缩它的宽度!(在其最小宽度和最大宽度之间)并保持在左div的右边!,直到容器div的宽度小于左div宽度+右div最小宽度,然后右div应该低于左div! http://jsfiddle.net/5m8lj/6/ 宽度当前css,绿色div应该收缩其宽度在200到500px之间,同时保持在左

  • 本文向大家介绍响应式框架Bootstrap栅格系统的实例,包括了响应式框架Bootstrap栅格系统的实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 效果显示图:   以上这篇响应式框架Bootstrap栅格系统的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。