而不是使用一個textarea
的,你可以使用同一個contenteditable="true"
div
。
該解決方案適用於刪除文本並增加字體大小。
HTML
<div class="border" id="border">
<div class="block" id="input" contenteditable="true">Click to edit</div>
</div>
CSS
.block {
width:400px;
font-size:25px;
font-family:'Helvetica';
}
.block:focus {
outline: none;
}
.border {
border: 1px solid #000;
width:400px;
height: 200px;
padding: 5px;
cursor:text;
}
jQuery的
$('#border').click(function(){
$('#input').focus();
});
$('#input').keyup(function(event){
while ($(this).height() > 200) {
$(this).css('font-size', '-=1');
}
if (event.keyCode == 8 || event.keyCode == 46) {
while ($(this).height() <= 200 && $(this).css('font-size') <= "25px") {
$(this).css('font-size', '+=1');
}
$(this).css('font-size', '-=1');
}
});
了Exa mple
http://jsfiddle.net/gwyqsk0s/
我從來沒有見過這種不使用等寬字體,讓您準確地預測文本大小做成功。一個相當大的限制。 – mrtsherman 2012-02-09 04:38:48