Javascript 找出元素的有效宽度并调整其中文本的大小

Javascript 找出元素的有效宽度并调整其中文本的大小,javascript,html,css,html-table,Javascript,Html,Css,Html Table,我想找出定义了style='width:200px,但文本使其变长(不中断)。我想找出有效宽度,只要它大于200px,每次将文本大小缩小约2px 这有可能吗?您需要JavaScript来实现这一点。但是,如果您想单独使用CSS,可以将CSS表达式与表达式一起使用 td {width: expression(this.style.width);} 希望有帮助!:) 这可以在javascript中完成,但有点复杂 以下是完整的工作示例: HTML: <table><tr>&

我想找出定义了
style='width:200px,但文本使其变长(不中断)。我想找出有效宽度,只要它大于200px,每次将文本大小缩小约2px


这有可能吗?

您需要JavaScript来实现这一点。但是,如果您想单独使用CSS,可以将CSS表达式与
表达式一起使用

td {width: expression(this.style.width);}

希望有帮助!:)

这可以在javascript中完成,但有点复杂

以下是完整的工作示例:

HTML:

<table><tr><td id=txtcell nowrap><span id=txt>My long text is long. My long text.</span></td></tr></table>
<br>Font Size : <span id=mes></span>​
javascript:

var fontSize = 20; 
var reduce = function() { 
    while ($('#txt').width() > 200) { 
        fontSize -= 1; 
        $('#txt').css('font-size', fontSize); 
    }
    $('#mes').html(fontSize); // this line is only for demonstration, remove it in "production"
}; 
reduce();

请注意,我必须在单元格中添加一个span,因为jquery的TD-width计算效果不太好。

您想使用JavaScript查找它吗?@Praveen我删除了您在“expression”标记中添加的内容:OP没有明确指出他想要的是什么。CSS表达式只与Internet Explorer兼容,甚至微软早就放弃了。我对你的JS做了一些编辑,因为间隔时间太长,所以用户可以看到交互。这样,它工作得非常好:var fontSize=20;var reduce=function(){while($('#txt').width()>200){fontSize-=1;$('#txt').css('font-size',fontSize);}$('#mes').html(fontSize);};减少();好啊如果您认为我的答案对其他人有用,您可以直接编辑我的答案。这个答案是通过二进制搜索进行改进的完美候选答案。
var fontSize = 20; 
var reduce = function() { 
    while ($('#txt').width() > 200) { 
        fontSize -= 1; 
        $('#txt').css('font-size', fontSize); 
    }
    $('#mes').html(fontSize); // this line is only for demonstration, remove it in "production"
}; 
reduce();