我想創建一個流體寬度textarea裏面的div。 div的寬度至少應爲3em,最多爲12em,否則寬度應與textarea完全相同。我有這個工作。 See fiddle。流體寬度的單行textarea
當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;
});
如果它只有一條線,爲什麼不使用輸入框? – DrLivingston
您是否將文本以某種方式再次複製到輸入框?在一個單獨的JSFiddle中將CSS降到最低限度,然後嘗試一下...你可能會看到更好的結果。 – Joshua
@DrLivingston該文本框有時用於多行輸入,我希望通過改變CSS類來在多行和單行模式之間切換。 – willlma