2016-05-12 5 views
0

Мне нужно автокорректировать высоту области текста. По умолчанию он будет в одной строке. при увеличении текста высота также должна быть увеличена. пожалуйста, предложите мне css. или скажите мне с простым сценарием jave.Textarea авто регулировать высоту

Кодекса:

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
</head> 
<style> 
textarea { 
    resize: none; 
    overflow: auto; 
    min-height: 24px; 
    max-height: 100px; 
} 
#url{ word-break: break-all; 
    font-family: 'Lato', sans-serif; 
    cursor: text; 
    resize: none; 
    height: 24px; 
    font-size: 14px; 
    line-height: 22px; 
    background-color: transparent; 
    border: 0; 
    margin-top: 6px; 
    -webkit-box-shadow: none; 
    -moz-box-shadow: none; 
    box-shadow: none; 
    text-decoration: none; 
    width:500px} 
</style> 
<body> 
<textarea readonly id="url">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</textarea> 
<div> 
                Where does it come from?</div> 
</body> 

</html> 
+0

Вопросы, предлагающие нам ** рекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебник или другой ресурс вне сайта **, не относятся к теме для переполнения стека, поскольку они склонны привлекать упрямые ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор, чтобы ее решить. * Большинство [вопросов в списке покупок] (http://blog.stackoverflow.com/2010/11/qa-is-hard-lets-go-shopping/) попадают по этой причине. * –

+0

Есть слишком много возможных ответов, или хорошие ответы были бы слишком длинными для этого формата. Пожалуйста, добавьте детали, чтобы сузить набор ответов или изолировать проблему, на которую можно ответить в нескольких абзацах. –

+0

Возможный дубликат [Создание текстового поля с автоматическим изменением размера] (http://stackoverflow.com/questions/454202/creating-a-textarea-with-auto-resize) – Shaggy

ответ

4

Это можно легко сделать, используя OnKey события на текстовом поле

function adjustHeight(ctrl) { 
 
    $(ctrl).css({'height':'auto','overflow-y':'hidden'}).height(ctrl.scrollHeight); 
 
} 
 
$('textarea').each(function() { 
 
    adjustHeight(this); 
 
}).on('input', function() { 
 
    adjustHeight(this); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea>Your text will come here, This has a long text and it got adjusted according to the content size</textarea> 
 

 
<textarea placeholder="Type, paste, cut text here..."></textarea>

+0

На самом деле первый из них был лучше. –

+0

@ PraveenKumar какой? –

+0

Да, теперь это выглядит хорошо. Предварительно загруженный контент. –

0

Это может быть "фальшивым" путем создания contenteditable контейнера.

fiddle

Одна вещь, чтобы иметь в виду, что это больше не будет рассматриваться как элемент формы, так JavaScript требуется, чтобы вытащить значение.

Смежные вопросы