gpt4 book ai didi

css - 在 Bootstrap 中自动调整文本区域的大小

转载 作者:行者123 更新时间:2023-11-28 09:11:44 25 4
gpt4 key购买 nike

我在这个 jsfiddle http://jsfiddle.net/tovic/gLhCk/ 中找到了以下非常简单的方法来自动将文本区域调整为文本高度:

function expandTextarea(id) {
document.getElementById(id).addEventListener('keyup', function() {
this.style.overflow = 'hidden';
this.style.height = 0;
this.style.height = this.scrollHeight + 'px';
}, false);
}

expandTextarea('txtarea');
body {
padding:50px;
}

textarea {
margin:0px 0px;
padding:5px;
height:16px;
line-height:16px;
width:96%;
display:block;
margin:0px auto;
}
<textarea id="txtarea" spellcheck="false" placeholder="Statusku..."></textarea>

但是,我在我的元素中使用 Bootstrap ,这引入了问题。

  1. 文本区域只有 4 像素高而不是 16 像素。bootstrap 似乎改变了边距、填充和高度的工作方式?
  2. 当按下 enter 时,文字会上下跳动,这会刺激眼睛。

我试图在浏览器的 HTML 检查器中删除所有 Bootstrap 类,但问题仍然存在。有谁知道如何解决这个问题?

添加bootstrap的CSS时的代码如下:

function expandTextarea(id) {
document.getElementById(id).addEventListener('keyup', function() {
this.style.overflow = 'hidden';
this.style.height = 0;
this.style.height = this.scrollHeight + 'px';
}, false);
}

expandTextarea('txtarea');
body {
padding:50px;
}

textarea {
margin:0px 0px;
padding:5px;
height:16px;
line-height:16px;
width:96%;
display:block;
margin:0px auto;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">



<textarea id="txtarea" spellcheck="false" placeholder="Statusku..."></textarea>

最佳答案

感谢您的所有回答,它让我对必须更改的内容有了宝贵的见解。最后,在 css 中多一点 padding-bottom 就成功了。

function expandTextarea(id) {
document.getElementById(id).addEventListener('keyup', function() {
this.style.overflow = 'hidden';
this.style.height = 0;
this.style.height = this.scrollHeight + 'px';
}, false);
}

expandTextarea('txtarea');
body {
padding:50px;
}

textarea {
/* margin:0px 0px; this is redundant anyways since its specified below*/
padding-top:10px;
padding-bottom:25px; /* increased! */
/* height:16px; */
/* line-height:16px; */
width:100%; /* changed from 96 to 100% */
display:block;
/* margin:0px auto; not needed since i have width 100% now */
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">



<textarea id="txtarea" spellcheck="false" placeholder="Statusku..."></textarea>

关于css - 在 Bootstrap 中自动调整文本区域的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37629860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com