了解文本行会多宽是HTML的自动换行和其他应用程序(Knowing how wide a text

2019-09-21 20:10发布

你知道知道如何宽将是一个文本行,所以你可以打破它正好适合固定宽度的良好的跨浏览器的方式?

假设你想打破长的文字,像这样它不会溢出固定宽度的容器,但你要行打破了最靠近边界可能,所以猜测在何处插入s不是一个干净的解决方案。

我要调查,我想这可能有一种无形的div然后打印它里面的线和检查div的宽度,或类似的东西,使用JavaScript来完成。

有没有人做过这样的事情?

*(焦点不自动换行,这只是现在我脑海中的应用,但我们知道,一个文本的宽度我想要什么)

Answer 1:

这是一个完整的“荒地鲁宾逊”(这是否参考旅行呢?)的办法。

<!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属性将返回它所包含的文本的长度。 当然,你需要设置任何字体样式属性得到一个合理的值。

据怪异模式网站歌剧可能是有点片状这种方法,但我怀疑它,你会得到一个全面的跨浏览器解决方案最接近。



文章来源: Knowing how wide a text line will be in HTML for word wrap and other applications