解决Android,ios字体设置font-weight后粗细显示效果不一问题

作者:张国钰
链接:https://www.zhihu.com/question/263533998/answer/270170059
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

font-weight的实际效果取决于浏览器的处理以及字体自身对粗体细体的支持,按照标准,如果设置的是数字,比如100,200,那么其实100-400都是normal,500~700都是bold,建议直接用lighter,normal,bold,bolder来设置font-weight。前面说了,font-weight的实际效果还取决于字体包本身的支持情况。是否可以正常显示粗体或者细体,取决于字体是否有粗体,或者细体。如果字体本身不支持,不管你怎么设置,都是一样的。还有一点,浏览器在渲染一篇内容时,如果是中文,便用中文字体包,遇到英文,就用英文字体包,就我经验而言,中文字体对细体和粗体支持不是很好,所以很多时候我们发现,英文可以达到我们预期的效果,但中文不一定。如果你想用细体汉字效果,最好找细体的字体包比较保险。为什么iOS可以按照预期处理呢,至少有两个原因吧,一个是iOS内置的字体包是有别于其他系统的,可能是iOS内置的字体对粗体细体支持得比较好吧,还有一个,据我所知(如有不对,欢迎斧正),因为iOS的浏览器对字体的处理是硬渲染,也就是说,不管字体是否支持,iOS的浏览器都会根据参数对字体加粗,或者减细。其实这并不好,因为字体的细体和粗体如果要完美的呈现,确保内容的可读性,并不是简单的加粗,或者减细就足够的,而是要重新设计一套字体,所以,我觉得(仅仅代表我个人观点)这是iOS浏览器的bug,对开发者是种误导。不管怎样,用lighter,normal,bold,bolder来设置font-weight,不要用数字。

你可能感兴趣的:(css,ios,android)