如何自动化可信元素?

时间:2013-11-13 07:34:17

标签: javascript html contenteditable autosize

这是我满意的要素:

    #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不能更短。

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

DEMO here

2 个答案:

答案 0 :(得分:4)

添加“display:inline-block;”到你的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>

答案 1 :(得分:1)

看看这个小提琴:DEMO

这很好......

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

<div contenteditable="true"  style= "border: 1px solid red; min-height:30px;width:200px"></div>