如何讓textarea隨着內容自適應高度

話很少說,直接上乾貨。web

方案一:spa

用 div 模擬 textarea, 高度自適應,而且有 placeholder 效果
(1)、使用 contenteditable 屬性,可以讓 div 具備編輯輸入效果
(2)、模擬 placeholder 的提示效果,此處直接用 CSS 實現
複製代碼

(3)、contenteditable 在IOS上有兼容性,雖然能聚焦,可是不能輸入內容,此時須要藉助屬性 -webkit-user-select: text , 來解決這個兼容性
(4)、缺點:獲取 div 文本的時候,內部會包含一些HTML標籤,因此須要單獨處理轉譯的數據,才能正常使用數據
複製代碼

方案二:3d

用 div 來實現高度自適應,可是輸入內容仍是再 textarea 標籤裏面
(1)、設置一個 div 與 textarea 同層級,外層包裹一個 div ,定位爲 relative
(2)、textarea 絕對定位,寬度高度均爲 100%,相對於父層 div 來講
(3)、內部 div,設置爲 relative, 在檢測 textarea 的 onchange 事件的時候,把文本填充到內部 div 裏面,以此來撐開父層 div 的高度和寬度
(4)、給內部 div 設置 不可見屬性,visibility:hidden,這樣 div 是看不見的,可是它的物理位置是存在的,因此可以撐開父層 div
(5)、該方案相對於方案一來講,更簡便和完美,尤爲是須要獲取輸入內容的時候
複製代碼

這兩個辦法,是我在開發中實際遇到的問題,因此如今分享出來,但願對你們有幫助,若是你們還有更好的辦法,請告訴我,你們一塊兒勉勵喲~~~~~
相關文章
相關標籤/搜索