HTML textarea 자동 높이 조절

Jmnote (토론 | 기여)님의 2017년 3월 10일 (금) 17:07 판

1 개요

textarea overflow visible
textarea auto resize in html on chrome
textarea 높이 내용물에 맞추기
textarea 자동 크기 조절
<style> textarea {width:300px;overflow:visible;} </style>
<textarea>Hello world</textarea>
  • IE든 크롬이든 최초 문자열의 크기에 맞게 TEXTAREA 세로 크기가 정해진다.
  • 이후에 텍스트를 입력하면...
IE8에서는 그에 맞게 TEXTAREA의 세로 크기가 늘어난다.
크롬에서는 늘어나지 않고, 대신 스크롤이 생긴다...

2 방법 1: JavaScript

내용물 높이에 맞춰주는 스크립트를 추가하면 크롬에서도 자동맞춤이 된다.

<style>
textarea.autosize { min-height: 50px; }
</style>

<textarea class="autosize" onkeydown="resize(this)" onkeyup="resize(this)" placeholder="추가 바람"></textarea>

<script>
function resize(obj) {
  obj.style.height = "1px";
  obj.style.height = (12+obj.scrollHeight)+"px";
}
</script>

3 방법 2: jQuery

방법 1과 동일하게 jQuery로 구현

<style>
textarea.autosize { min-height: 50px; }
</style>

<textarea class="autosize" placeholder="추가 바람"></textarea>

<script src="//code.jquery.com/jquery.min.js"></script>
<script>
$("textarea.autosize").on('keydown keyup', function () {
  $(this).height(1).height( $(this).prop('scrollHeight')+12 );	
});
</script>

4 같이 보기

5 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}