如何扩展textarea以垂直和水平放置文本?
如何使用html,css和jquery做这样的事情?
我发现这个问题Textarea根据内容长度resize,但它只扩展textarea的高度。
我希望我的textarea能够精确模仿用户输入的内容。 因此,如果用户将文本写入一行,则行不会结束,直到用户点击“输入”。 textarea的宽度可能比窗口大。 高度也一样。
我也在搜索解决方案,它允许我更改fontsize和textarearesize以适应它。
有没有人有想法?
高度的解决方案很好。
为了让它看起来水平正确,添加以下css,
textarea { width: 100%; display: block; resize: vertical; }
甚至使用onkeypress
看到这个例子: http : //jsfiddle.net/kevalbhatt18/bkyxz8cc/3/
对于占位符加载使用jquery并将占位符大小应用于输入
$('textarea').css('width',((input.getAttribute('placeholder').length + 1) * 8) + 'px');
即使你可以使用id而不是输入这只是一个例子,所以我用$(输入)
并在css中提供最小宽度
.form { border: 1px solid black; text-align: center; outline: none; min-width:4px; }
如果从textarea框中删除所有文本,则将使用focusout取占位符值
$("textarea").focusout(function(){ if(this.value.length>0){ this.style.width = ((this.value.length + 1) * 8) + 'px'; }else{ this.style.width = ((this.getAttribute('placeholder').length + 1) * 8) + 'px'; } });
对于更改,fontsize和textarea会resize
使用按钮单击
$('button').on('click',function(){ var style={ "font-size":"20px", "height":"90px", "width":"40%", } $('textarea').css(style); })
感谢大家的建议和回应,但最后我带来了自己的一点解决方案。
所以我使用这个Textarea根据内容长度resize,因为脚本扩展了textarea的高度。
为了扩展textarea的宽度,我创建了一个隐藏的div,我从textarea复制了文本,并递归地将div的宽度分配给textarea。 当然,您必须为两个元素设置相同的文本样式。
另外,因为我希望textarea能够自我膨胀“无限超越”,这就是为什么我也改变了html和身体的宽度。
function textAreaAdjust(o) { o.style.height = "1px"; o.style.height = (90+o.scrollHeight)+"px"; x = $('textarea').val().replace(/&/g, '&') .replace(/>/g, '>') .replace(/'); $('div').html(x); $('html').css('width',$('div').width()+50); $('body').css('width',$('html').width()); $('textarea').css('width',$('html').width()); }