【问题标题】:Wrapping the text the same way in a div as in a textarea在 div 中以与在 textarea 中相同的方式包装文本
【发布时间】:2012-05-28 13:54:18
【问题描述】:

我在实时编辑 HTML 文本区域时创建了一个建议面板。为了获得 {x,y} 坐标,我使用了一个隐藏在 textarea 后面的 div。我得到了carret位置,然后将carret前面的文本加上一个span标签复制到隐藏的div。然后我得到跨度坐标并将其提供给建议面板。

唯一的问题是,当我在 textarea 中添加一条没有空格的长行时,该行在 div 面板中被剪切时会被换行(因此,在我添加回车之前,建议面板的位置不再合适)。

有没有办法在这两个地方(textarea 和 div 面板)以相同的方式调整文本?

(我正在使用 jQuery)

【问题讨论】:

    标签: javascript jquery html textarea


    【解决方案1】:

    为您的 DIV 提供 word-wrap:break-word 样式将强制自动换行并使您的 DIV 像您的文本框一样处理长文本。

    【讨论】:

    • 我已经尝试将word-wrap 设置为 div,但它没有完成这项工作。长单词在 div 中被分成两个单词,而整个单词在 textarea 中换行。
    • 对不起,我的错误,我用“ ”替换了空格以便它们可以重复并且看起来像 textarea 但因此没有空格可以打断单词。
    【解决方案2】:

    overflow:autooverflow:scrollwidth: / height: 添加到div 的css 中,这将为您提供一个滚动条,该滚动条将包裹文本并看起来像一个文本区域,而且没有边框。你也可以给它一个border 样式,让它看起来更像一个文本区域。

    像这样:

     <div style="overflow:auto;width:150px;height:50px;border:1px solid #CCC;">
    
        Your text goes here
    
     </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      相关资源
      最近更新 更多