• 在 Web 内容中使用系统字体


    某天(2016.07.12)发现 GitHub 的字体比原来宽了一些,打开开发者工具一看,字体设置中多了两个奇怪的玩意:

    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    }
    

    -apple-systemBlinkMacSystemFont 是什么东东?根据 Webkit 博客-apple-system 用于调用系统默认 UI 字体,并且会根据 font-weight 声明选择恰当的变体。system 将来有可能成为标准-apple- 为过渡阶段的厂商前缀。

    又该去更新字体列表了 :(。

    body {
      font-family:
    /* 1 */ system, -apple-system, BlinkMacSystemFont,
    /* 2 */ "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans",
    /* 3 */ "Helvetica Neue", sans-serif;
    }
    

    第一组映射系统 UI 字体:

    • -apple-system:macOS 和 iOS 平台的 Safari 指向 San Francisco,更老版本的 macOS 指向 Neue Helvetica 和 Lucida Grande(中文字体待验证)
    • BlinkMacSystemFont:为 macOS Chrome 应用系统 UI 字体,与上面等同

    第二组定义已知的系统 UI 字体:

    • Segoe UI 面向 Windows 和 Windows Phone
    • Roboto Android 及 较新的 Chrome OS
    • Oxygen 面向 KDE、Ubuntu 等
    • Fira Sans 面向 Firefox OS
    • Droid Sans 面向老版本 Android

    第三组回退处理:

    • Helvetica Neue El Capitan 之前的 macOS 系统 UI 字体
    • sans-serif 字体回退

    考虑到中文字体,最终的列表可能是:

    body {
      font-family:
        system, -apple-system, BlinkMacSystemFont,
        "PingFang SC", "Segoe UI", "Microsoft YaHei", "wenquanyi micro hei","Hiragino Sans GB", "Hiragino Sans GB W3", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans",
        "Helvetica Neue", Helvetica, Arial, sans-serif;
    
    }
    

    是不是又臭又长?维护这么个列表也够蛋疼的。简单一点,何尝不好:

    font-family: sans-serif;
    

    关于苹方

    可以直接指定具体的字形:

    .some-element {
      font-family: "PingFang SC ExtraLight"; /* 或者 "PingFang SC Thin" */
      font-family: "PingFang SC Light";
      font-family: "PingFang SC"; /* 或者 "PingFang SC Regular" */
      font-family: "PingFang SC Medium";
      font-family: "PingFang SC Semibold";
      font-family: "PingFang SC Heavy";
    }
    

    或者预先定义好,使用 "PingFang-SC" 引用,浏览器根据 font-weight 去选择不同的变体。

    @font-face {
      font-family: "PingFang-SC";
      font-weight: 100;
      src: local("PingFang SC Thin");
    }
    
    @font-face {
      font-family: "PingFang-SC";
      font-weight: 300;
      src: local("PingFang SC Light");
    }
    
    @font-face {
      font-family: "PingFang-SC";
      font-weight: 400;
      src: local("PingFang SC Regular");
    }
    
    @font-face {
      font-family: "PingFang-SC";
      font-weight: 500;
      src: local("PingFang SC Medium");
    }
    
    @font-face {
      font-family: "PingFang-SC";
      font-weight: 700;
      src: local("PingFang SC Semibold");
    }
    
    @font-face {
      font-family: "PingFang-SC";
      font-weight: 800;
      src: local("PingFang SC Heavy");
    }
    
    body {
      font-family: "PingFang-SC", sans-serif;
    }
  • 相关阅读:
    [自定义服务器控件] 第三步:CheckBoxList。
    Flex构建WebService应用
    ServletActionContext.getRequest().getServletPath()错误的解决方法
    MyEclipse 8.6 安装 SVN 插件
    [转]hibernateHQL总结
    Struts入门实例
    错误:“Cannot load JDBC driver class 'com.mysql.jdbc.Driver”的解决方法
    Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
    错误:“已有打开的与此命令相关联的 DataReader,必须首先将它关闭”的解决方法。
    [转]删除Windows 7 C:/Users/用户名/AppData里面的文件
  • 原文地址:https://www.cnblogs.com/2019gdiceboy/p/11365271.html
Copyright © 2020-2023  润新知