Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery css()函数更改字体大小会使Chrome崩溃_Javascript_Jquery_Css_Google Chrome_Font Size - Fatal编程技术网

Javascript 使用jQuery css()函数更改字体大小会使Chrome崩溃

Javascript 使用jQuery css()函数更改字体大小会使Chrome崩溃,javascript,jquery,css,google-chrome,font-size,Javascript,Jquery,Css,Google Chrome,Font Size,因此,我有一段代码,在FF和IE8中可以完美工作,但它会破坏Chrome: while($('#movie-info .vote').height()>30) { $size = $('#movie-info .vote').css('font-size').replace('px',''); $('#movie-info .vote').css('font-size',($size-0.5)+'px'); } 我猜这是因为chrome不允许字体大小低于某个限制,但当字体

因此,我有一段代码,在FF和IE8中可以完美工作,但它会破坏Chrome:

while($('#movie-info .vote').height()>30) {
    $size = $('#movie-info .vote').css('font-size').replace('px','');
    $('#movie-info .vote').css('font-size',($size-0.5)+'px');
}

我猜这是因为chrome不允许字体大小低于某个限制,但当字体大小达到该限制时,高度仍然>30

我认为你应该避免for循环,而是根据“电影信息.投票”的高度立即重新计算最佳字体大小

使现代化 要使单行行具有隐藏的续行,请使用以下命令:

#movie-info .vote {
    line-height: 1.5em;
    height: 1.5em;
    overflow: hidden;
    white-space: nowrap;
}

在这里尝试一下:

我偶然发现了这个老问题,寻找一个不同的问题,但我认为我可以对这个问题有所启发,特别是考虑到使用-1而不是-0.5的作品

Chrome和其他基于WebKit的浏览器处理单位舍入的方式不同于Firefox和IE。虽然Firefox尽其所能渲染和报告分数像素大小,IE渲染舍入大小,但仍会准确报告您指定的值,WebKit会对渲染值进行舍入,并在您要求返回时报告舍入值

假设大小从14px开始。运行此代码时:

// $size = 14
$size = $('#movie-info .vote').css('font-size').replace('px','');
// font-size: 13.5px
$('#movie-info .vote').css('font-size',($size-0.5)+'px');
Chrome将您的大小更改舍入,字体大小仍为14px。因此,循环永远不会停止,因为$size永远不会减少

一个简单的解决方案是一次声明$size,而不是询问Chrome它是什么:

// Don't forget to declare with `var` to give $size local scope!
// Otherwise it is declared in global scope which could lead to
// weird bugs or lost performance.
var $size = $('#movie-info .vote').css('font-size').replace('px','');
while ($('#movie-info .vote').height() > 30) {
    $size = $size - 0.5;
    $('#movie-info .vote').css('font-size', $size + 'px');
}

顺便问一下,你到底想完成什么?给。投票相同的字体大小,使他们所有我试图使内容适合容器在一行,使容器不伸展。默认字体大小为16px,这似乎可以使用。。不明白为什么while循环没有。如果$'movie-info'.height>30{$'movie-info'.css'font-size','13px';}@ulph,我想问题是:你试图设置小字体大小,但chrome不允许,所以高度永远不会低于30px,循环永远不会结束。。如果你想将高度限制在一排,最好使用CSSthanks for your suggestions。。但不知怎么的,我的代码使用的是-1而不是-0.5.Ok,所以这里的问题可能是chrome将字体大小舍入为整数值;无论如何,用CSS而不是JavaScript做这类事情比用JavaScript做要好得多/故障保护/节省资源..idk为什么这样做,但它与-1Define一起工作,可以chrash[sic]Chromethanks@micha。。真奇怪。