由于不同的操作系统所使用的字体是不同,所以粗体的字重可以有不同选择。CSS中的bold关键字代指700的字重,但是在OS X的苹方字体下面却可以使用500字重的粗体,使Web界面更加美观。
关于字重的理论请参照《CSS权威指南》第5章第二节,这里所实现的操作与字重理论关系不大,只是能够在不同操作系统下使用不同的字重而已,此操作属于JS Polyfill,并非纯CSS Trick。
原理:CSS Level 3支持定义变量,比如于html元素下定义如下变量:
body {
--font-weight-bold: 700;
}
这样在所有的子元素的样式表中,就可以使用:font-weight: var(--font-weight-bold),来使用700字重的粗体了。如此一来要做的操作就很简单了,通过 window.navigator.userAgent 来判别操作系统,然后修改样式表的 --font-weight-bold 变量,所有的粗体都会按照此变量来赋值字重。
if (isMac()) {
window.document.body.style.setProperty("--font-weight-bold", 500);
} else {
window.document.body.style.setProperty("--font-weight-bold", 700);
}
判别操作系统的函数请参照其他互联网文章。