javascript - 流体宽度单行文本区域

标签 javascript html css

我正在尝试创建一个内部带有可变宽度文本区域的 div。 div 的宽度应至少为 3em,最多为 12em,否则与文本区域的宽度完全相同。我有这个工作。 See fiddle .

当 textarea 填满 div 时,它会创建一个换行符而不是向左溢出,这就是我想要的效果。有什么想法可以实现吗?

编辑:此代码基于 A List Apart's article on Expanding Text Areas .

html

<div><pre><span></span><br></pre>
  <textarea autofocus placeholder='Note'></textarea>
</div>

CSS

div {
    border: 1px solid grey;
    position: relative;
    display: inline-block;
/*     overflow: hidden; */
    height: 1.3rem;
    min-width: 3rem;
    max-width: 12rem;
}
textarea {
    border: 1px solid blue;
    resize: none;
    background: rgba(0,0,255,.5);
    padding: 0;
    width: 100%;
}
textarea, pre {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    margin: 0;
/*     visibility: hidden; */
}
pre {
    border: 1px solid pink;
    position: relative;
    max-width: 100%;
}
* {
    font: 1rem arial;
}

js

var textarea = document.querySelector('textarea');
var span = document.querySelector('span');
textarea.addEventListener('input', function() {
  span.textContent = textarea.value;
});

最佳答案

在你的 CSS 中使用:

white-space: nowrap;
overflow: hidden;    

编辑此已弃用: 您可以将 wrap="off" 设置为 textarea 的属性吗?

编辑:说溢出:隐藏; (根据下面的评论)原文:溢出:自动;

关于javascript - 流体宽度单行文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798078/

相关文章:

JavaScript setInterval : multiple intervals

javascript - Zclip 在 jsfiddle 上工作但不能在本地工作?

javascript - 基于 jQuery 的响应式设计——改变元素、不需要的预加载

html - Bootstrap 4 - 更改移动设备中 5 列布局的顺序

html - 使用 flexbox Bootstrap 元素到底部

javascript - 如何让javascript在页面加载后发送ajax数据而无需按钮?

javascript - 精简了一系列javascript函数

javascript - 旋转多边形检测并使直线遵循边界

html - 隐藏字段的标签是否符合 508 标准?

php - 如何使用 PHP 和 Mysql 将 HTML div 标签转换为带有 CSS 样式的 pdf