HTML / CSS - 调整字体大小以填充父级高度和宽度

时间:2011-10-19 18:19:15

标签: javascript html css font-size

我有一个<div>元素,可以在浏览器窗口调整大小时调整大小。

<div>内,我有一段文字:

<div style="width:80%; height:80%; margin:10%;">
    <p>Paragraph of text. Paragraph of text. Paragraph of text.</p>
</div>

我希望在调整font-size大小时更改<div>文本,以便文本占用100%的可用空间。

我怎样才能达到这个效果?
是否使用百分比字体大小?
我必须使用Javascript吗?

提前致谢!

5 个答案:

答案 0 :(得分:9)

有一个jquery插件:http://fittextjs.com/

答案 1 :(得分:2)

答案 2 :(得分:2)

您需要的是vw。示例 CSS font-size: 80vw;vw表示查看器端口宽度,设备屏幕宽度为80vw = 80%

答案 3 :(得分:1)

HTML

<div id="change" style="margin:10%;"> 
    <p>Paragraph of text. Paragraph of text. Paragraph of text.</p> 
</div> 

CSS

#change { 
    width: 80%; 
    height: 80%; 
    border: 1px solid black; 
    overflow: hidden; 
    font-size: 1em; 
} 

JAVASCRIPT

$(function() { 
    while( $('#change div').height() > $('#change').height() ) { 
        $('#change div').css('font-size', (parseInt($('#change div').css('font-size')) - 1) + "px" ); 
    } 
}); 

答案 4 :(得分:0)

fittext.js对我来说不正常(jQuery的插件,以及派生的jquery-free版本),也没有使用compress属性,所以我找到了另一个解决方案:

<强> http://www.dhtmlgoodies.com/?whichScript=text_fit_in_box (某人是另一份工作)

对我来说非常适合 - 较长的文本和较短的文本。

它只是不响应窗口的大小调整(它只在加载页面时工作一次),所以我写了这个简短的代码,在每个窗口调整大小后自动运行它(它对我有用):

<script>
      function calculate_font_sizes()
      {
        fitTextInBox('login-h1');
        fitTextInBox('subtittle');
      }
      calculate_font_sizes();
      window.addEventListener('resize', calculate_font_sizes);

</script>

我希望它对某人有帮助。