如何更改动态文本的字体大小,直到文本存储在一行中?

时间:2013-10-25 13:25:39

标签: javascript html css textwrapping

我有div的跨度和动态文本,如下所示:

<div>
<span>
    dynamic text
</span>
</div>

是否可以更改字体大小,直到动态文本存储在一行中(我的意思是,没有换行)?

3 个答案:

答案 0 :(得分:0)

首先,您需要获取范围内的值(您必须修剪它以避免前面的空格)。

var result = $("div > span").text().trim();

然后只需使用预定义值检查结果并更改字体大小

if(result == "dynamic text"){
    $("span").css("font-size", "50px");
}

Live Demo

答案 1 :(得分:0)

你可以试试这个:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function adjust() {
            var text = document.getElementById('t');
            var input = document.getElementById('a');
            text.innerHTML = input.value;
            var fontSize = parseFloat(text.style.fontSize);
            fontSize -= 0.1;
            text.style.fontSize = fontSize + 'px';
        }
    </script>
</head>
<body>
<div>
<span id="t" style="font-size: 18px">
    dynamic text
</span>
    <br/>
    <input type="text" id="a" onkeydown="adjust()"/>
</div>
</body>
</html>

答案 2 :(得分:-1)

将div溢出设置为隐藏。

<div  id="Div" style="overflow:hidden ">
 <span id ="Span" onclick="resize()">
   DynamicText
 </span>
</div>

javascript代码会减小跨度的字体大小,直到跨度的宽度小于包含div的宽度:

$(document).ready(function(){
{
    while(parseInt($('#Span').width()) > parseInt($('#Div').width()))
    {
        $('#Span').css('fontSize', (parseInt($('#Span').css('fontSize'))-1) +'px');
    }
}

JsFiddle Demo