思考
如何通过一个标签实现如下效果:
一般我们实现的方式如下:
<span>¥</span><span>100</span>
定义两个标签分别设置不同的样式来搞定。
新思路
通过CSS属性::first-letter可以通过一个标签来实现类似效果。
<div class="price">¥100</div> .price::first-letter { font-size: 72%; }
效果如下:
first-letter的兼容性也是很好的。可以在实际项目中使用。另外,他有一个缺点就是他只能修改开头第一个字符,如果需要修改末尾单位的字符样式。也可以通过另外一个属性来设置。
size-adjust+ unicode-range
size-adjust 浏览器将调整字体大小,无论字体系列("宋体"性质值0.58)
unicode-range 设置font-face特定的字符。
<div class="money">100元</div> @font-face { font-family: smallYuan; src: local('PingFang SC'), local('PingFang SC Light'), local('Source Han Sans CN'), local('Noto Sans CJK SC'), local("Microsoft Yahei"); size-adjust: 20%; unicode-range: U+5143; } .money { font-family: smallYuan; font-size: 24px; color: red; }
效果如下:
size-adjust+ unicode-range 的兼容性在当下并不是太小,不支持safari。所以采用的时候要注意这一点。