3

这是我的 contenteditable 元素:

    #editor {
        width: 200px;
        height: 30px;
        border: 1px solid red;
        overflow: hidden;
    }
    <div id="editor" contenteditable="true"></div>

我希望它可以根据用户的内容自动调整大小。我尝试听keyup事件:

    editor.addEventListener("keyup", function (){
        newheight = editor.scrollHeight;
        editor.style.height = newheight + "px";
    })   

这可以在 div 变高时起作用,但是当用户删除所有内容时,div 不能更短。

我怎样才能让它自动调整大小?

演示在这里

4

2 回答 2

4

添加“显示:内联块;” 到你的 CSS 和“min-”到宽度和高度。

您的 DIV 将自动增长 innerHTML 内容。

<html>
  <style type="text/css">
    #Test
    {
      display: inline-block;
      min-width: 30px;
      min-height: 30px;
      border: 1px solid red;
      overflow: hidden;
    }
  </style>
  <div id="Test" >
    Nothing But Bigger
    And <br />
    Taller
  </div>
</html>
于 2013-11-13T07:46:00.580 回答
1

看看这个小提琴:DEMO

这工作正常...

您只需在代码中使用以下 HTML 标记

<div contenteditable="true"  style= "border: 1px solid red; min-height:30px;width:200px"></div>
于 2013-11-13T08:52:35.783 回答