CSS,相对字体大小

Dev*_*ate 5 css fonts

是否可以将字体大小设置为容器大小的百分比?我有一个项目列表,其中包含图像,标题和说明.当用户调整窗口大小时,图像会自动调整大小.我希望标题字体做同样的事情.

编辑:Javascript/JQuery很好.

Juk*_*ela 11

在CSS3中,有vw单位,代表视口宽度的1/100.例如,

h1 { font-size: 5.5vw; }
Run Code Online (Sandbox Code Playgroud)

将标题字体大小设置为视口宽度的5.5%.

但是,到目前为止,这似乎适用于IE 9(标准模式).此外,只有在重新加载时,IE 9才会在调整浏览器窗口大小时动态更改单元的值.

  • 但这与容器的大小无关. (5认同)

Chi*_*ata 5

只是为了扩展Tyler的答案,这就是javascript的意思,虽然我确信你可以使用CSS3视口实现同样的壮举,但你最好还是使用jQuery(它通常在大多数浏览器的缓存中并且总是托管在谷歌上所以不用担心:)

如果你有这样的CSS:

#body #mytext {
   font-size: 50%;
}
Run Code Online (Sandbox Code Playgroud)

你可以像这样在jQuery中动态调整大小:

$(window).resize(function(){
    $('#body #mytext').css('font-size',($(window).width()*0.5)+'px');
});
Run Code Online (Sandbox Code Playgroud)

  • 只是一个FYI,你不必指定`#mytext`是`#body`的后代,除非你试图增加特异性值(如果你使用id的话,坦率地说这是错误的方法). (8认同)
  • 错误的语法,没有.错在语义上,是的. (3认同)
  • 好吧,[`id`属性中的每个值必须是唯一的](http://www.w3.org/TR/html5-author/global-attributes.html#the-id-attribute).因此,`#mytext`最多只能引用一个元素.话虽如此,没有太多需要在CSS规则中指定其任何优势. (2认同)
  • 哦,我刚刚得到你实际想要解释的内容.是的,但我只是提供一个例子:) (2认同)