我有一个容器有%的宽度和高度,所以它根据外部因素进行缩放。我希望容器内的字体是一个恒定的大小相对于容器的大小。使用CSS有什么好的方法可以做到这一点吗?font-size:x%
将只根据原始字体大小(100%)缩放字体。
您可能可以通过CSS3使用计算来实现这一点,但是使用JavaScript可能更安全。
下面是一个示例:http://jsfidle.net/8trtu/
使用JS,您可以更改文本的高度,然后简单地将相同的计算绑定到一个调整大小事件,这样它就可以在用户进行调整时缩放,或者在您允许调整元素大小的情况下缩放。
如果要将font-size设置为视区宽度的百分比,请使用vw
单位:
#mydiv { font-size: 5vw; }
另一种选择是使用嵌入在HTML中的SVG。就几行而已。text元素的font-size属性将被解释为“用户单元”,例如,视口定义的用户单元。因此,如果您将viewport定义为0 0 100 100,那么font-size为1将是svg元素大小的百分之一。
不,在使用计算的CSS中没有办法做到这一点。问题是,用于font-size的百分比(包括计算中的百分比)是根据继承的字体大小来解释的,而不是容器的大小。CSS可以为此使用一个名为bw
(框宽)的单元,所以可以说div{font-size:5bw;}
,但我从未听说过有人提出过这种方法。