CSS: Set font to a size so the text would occupy whole container [duplicate]

旧城冷巷雨未停 提交于 2019-12-05 23:15:20

问题


Possible Duplicate:
resize font to fit in a div (on one line)

For a small flashcard maker app I need to set the correct font size so text would fill all the available width of a fixed-size container; like the text in the four boxes in this picture:

A solution using PHP GD has been provided to this question. Is there a client side solution with css or javascript to this problem?


回答1:


it's not brute force ;)

HTML:

<span id="txt">Lorem</span>
<div id="card"></div>

CSS:

#card { 
    width: 150px; 
    height: 50px;
    border: 1px solid black 
}

#txt {
    display: none
}

JS (using JQuery):

var size_w = (150/$('#txt').width() - 0.05);
var size_h = (50/$('#txt').height() - 0.05);
var size = size_w>size_h?size_h:size_w;
$('#card').css('font-size',  size + 'em');
$('#card').text($('#txt').text());

fiddle here: http://jsfiddle.net/cwfDr/

All right, now it covers both height and width. ;)




回答2:


I wrote this tiny, tiny plugin to do it to fit the browser window.

            (function($){
                $.fn.extend({ 
                    sizeFont: function() {
                        return this.each(function() {
                            $obj = $(this);
                            $obj.css({fontSize:($(window).width()/$obj.width())+'em'});
                        });
                    }
                });
            })(jQuery);

I'm sure you can modify this to fit your needs by switching $(window) to whatever you want. Here is it live:

http://cullywright.com/




回答3:


I had looked into this years ago, and we decided the only logical way of doing it that didn't induce insanity was using images instead of text for the numbers, and then calculating the size of the images needed based on the width of the container (we also had text). Also, we used a fixed width font selected for the numbers/text.

Another alternative is flash text replacement, which gives you more control: http://www.mikeindustries.com/blog/archive/2004/08/sifr

There may be other techniques that have developed over the last few years, and maybe CSS3 could help (although it may not be broadly supported if it does), but the image technique gave us the best bang for the buck.



来源:https://stackoverflow.com/questions/4842646/css-set-font-to-a-size-so-the-text-would-occupy-whole-container

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!