如何讓textarea隨著內(nèi)容自適應(yīng)高度

1.用 div 模擬 textarea, 高度自適應(yīng),并且有 placeholder 效果

(1)、使用 contenteditable 屬性,可讓 div 具有編輯輸入效果

(2)、模擬 placeholder 的提示效果,此處直接用 CSS 實現(xiàn)


css
html

(3)、contenteditable 在IOS上有兼容性,雖然能聚焦,但是不能輸入內(nèi)容,此時需要借助屬性 -webkit-user-select: text , 來解決這個兼容性

(4)、缺點:獲取 div 文本的時候,內(nèi)部會包含一些HTML標(biāo)簽,所以需要單獨處理轉(zhuǎn)譯的數(shù)據(jù),才能正常使用數(shù)據(jù)

2.用 div 來實現(xiàn)高度自適應(yīng),但是輸入內(nèi)容還是再 textarea 標(biāo)簽里面

(1)、設(shè)置一個 div 與 textarea 同層級,外層包裹一個 div ,定位為 relative

(2)、textarea 絕對定位,寬度高度均為 100%,相對于父層 div 來說

(3)、內(nèi)部 div,設(shè)置為 relative, 在檢測 textarea 的 onchange 事件的時候,把文本填充到內(nèi)部 div 里面,以此來撐開父層 div 的高度和寬度

(4)、給內(nèi)部 div 設(shè)置 不可見屬性,visibility:hidden,這樣 div 是看不見的,但是它的物理位置是存在的,所以能夠撐開父層 div

(5)、該方案相對于方案一來說,更簡便和完美,尤其是需要獲取輸入內(nèi)容的時候

html
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容