如何使用 contenteditable 属性实现输入框自动伸缩并换行?

如何使用 contenteditable 属性实现输入框自动伸缩并换行?

自动伸缩输入框,正文换行的实现

对于“输入框自动伸缩并换行”的问题,有一种广泛采用的解决方案利用了 html 中的 contenteditable 属性。

解决方案:

html 代码中创建包含输入内容的可编辑 div 元素。

<div class="auto-expand" contenteditable="true">111</div>

样式设置:

然后,为 div 设置以下 css 样式:

.auto-expand {
    display: inline;
    word-break: break-all;
    word-wrap: break-word;
    border: 1px solid black;
}
  • display: inline 允许 div 在文本内呈行内元素显示。
  • word-break: break-all 和 word-wrap: break-word 允许文本在单词边界断行。
  • border: 1px solid black 仅用于演示目的,可以根据需要移除。

原理:

当用户输入内容时,编辑器内的文字会在其可用宽度内自动增长和换行。:contenteditable 属性将 div 标记为可编辑区域,而 word-break 和 word-wrap 允许文本在空间限制下自动调整。

示例:

<div class="input-container">
    你好,
    <div class="auto-expand" contenteditable="true">1111111111111111111111111111111111111111111</div>
    请下午来开会
</div>

效果:

文本会适应父元素的宽度自动伸缩,超出宽度时会自动换行。

以上就是如何使用 contenteditable 属性实现输入框自动伸缩并换行?的详细内容,更多请关注其它相关文章!