gpt4 book ai didi

javascript - 了解 HTML 中文本行的宽度以用于自动换行和其他应用程序

转载 作者:太空狗 更新时间:2023-10-29 16:38:17 25 4
gpt4 key购买 nike

您是否知道一种跨浏览器的好方法来了解文本行的宽度,以便您可以准确地将其打断以适应固定宽度?

假设您想要断开一个长文本,这样它就不会溢出固定宽度的容器,但您希望该行尽可能靠近边界断开,因此猜测在何处插入 s 并不是一个干净的解决方案。

我想调查一下,我想这可以用一个不可见的 div 然后在其中打印行并使用 Javascript 检查 div 的宽度或类似的东西来完成。

有人做过这样的事吗?

*(重点不是自动换行,这只是我现在想到的应用程序,但知道文本的宽度是我想要的)

最佳答案

这是一个完整的“Heath Robinson”(引用旅行是否顺利?)方法。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
function txtContent_onchange()
{
var span = document.getElementById("spanMeasure")
span.innerHTML = "";
span.appendChild(document.createTextNode(this.value));
document.getElementById("txtWidth").value = span.scrollWidth;

}
</script>
<style type="text/css">
#spanMeasure
{
position:absolute;
top:0px;
left:0px;
visibility:hidden;
width:10px;
white-space:nowrap;
overflow:hidden
}
</style>
</head>
<body>

<input id="txtContent" onchange="txtContent_onchange.call(this)" /><br />
<input id="txtWidth" />
<span id="spanMeasure"><span>

</body>
</html>

这里关键的是span元素的配置。此元素不会影响页面的视觉外观。它的 scrollWidth 属性将返回它包含的文本的长度。当然,您需要设置任何字体样式属性才能获得合理的值。

根据 quirksmode Opera 站点使用这种方法可能有点不稳定,但我怀疑它是最接近完全跨浏览器解决方案的方法。

关于javascript - 了解 HTML 中文本行的宽度以用于自动换行和其他应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1216759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com