目前前端对字体的选择,最好的做法就是用系统的默认字体,这样省去了对每个操作系统的字体判断,谁知道我们指定的这个字体用户安装没有,而且字体文件一向都很大,特别是中文字体。

但是对于指定系统字体,其实也是需要兼容的,这里就放上一个专业的字体文章:《奇思妙想 CSS 文字动画》;虽然这个文章名字叫动画,但是里面内容很丰富,自己学习。

css-tricks的为模板,提取其中精华,大概是这么一条信息:

{
    font-family: system-ui, -apple-system, BlinkMacSystemFont, segoe ui, Roboto, Helvetica, Arial, sans-serif;
}

具体含义上面那个外链文章都有,这里就讲下怎么用?

怎么用?

一般肯定会说,这还不简单,body一把梭啊!

body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, segoe ui, Roboto, Helvetica, Arial, sans-serif;
}

但是这样你会遇到一个问题,在谷歌浏览器中,我们可以看到button按钮他是有一个默认css样式的。

这个样式他会将body设置的font-family覆盖,因为font简写的优先级是高于body的设置的。

于是乎,这个效果就会不完美,如果我们修改了浏览器的默认字体,你就会在网页上看到两种字体共存,相当难看。

解决办法也是有的:

:root {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, segoe ui, Roboto, Helvetica, Arial, sans-serif;
}

*,
::after,
::before {
    font-family: inherit;
}

使用根元素+*选择器,加上伪元素选择器,通过继承,此时我们的选择器权限高于默认的样式font,所以,问题得以解决。

喜大普奔。

分类: CSS 标签: 字体cssfontfont-family系统字体

评论

暂无评论数据

暂无评论数据

目录