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