`

textarea如何实现高度自适应?

    博客分类:
  • CSS
 
阅读更多

今天需要些一个回复评论的页面,设计师给的初始界面就是一个只有一行的框。然后当时就想这个交互该怎么实现比较好,然后想起了新浪微博的做法:点击评论,默认显示一行,当输入的文字超过一行或者输入Enter时,输入框的高度会随着改变,直到输入完毕。顿时觉得这个细节做得挺不错的,可以效仿下。下面分享2种实现textarea高度自适应的做法,一种是用div来模拟textarea来实现的,用CSS控制样式,不用JS;另一种是利用JS控制的(因为存在浏览器兼容问题,所以写起来比较麻烦);

方法一:div模拟textarea文本域轻松实现高度自适应

demo演示地址:http://www.xuanfengge.com/demo/201308/textarea/demo1.html

因为textarea不支持自适应高度,就是定好高度或者是行数之后,超出部分就会显示滚动条,看起来不美观。

而用DIV来模拟时,首先遇到的问题是:div怎么实现输入功能?

可能我们还是第一次见到这个属性contenteditable,如一个普通的block元素上加个contenteditable="true"就实现编辑,出现光标了。如

contenteditable属性虽是HTML5里面的内容,但是IE似乎老早就支持此标签属性了。所以,兼容性方面还是不用太担心的。

CSS代码

 HTML代码

CSS代码中,因为IE6不支持min/max,所以做了hack,其他的也好理解。

 

方法二:文本框textarea根据输入内容自适应高度

demo演示地址:http://www.xuanfengge.com/demo/201308/textarea/demo2.html

这个写法是用原生JS写的,考虑了很多兼容性问题,完全和新浪微博的回复效果一样的功能。有兴趣的童鞋可以仔细分析下代码。

CSS代码

javascript代码

HTML代码(写在body里面的)

 

 其他方法

分享到:
评论

相关推荐

    jquery----TextArea高度自适应

    在探讨“jQuery——TextArea高度自适应”的主题时,我们深入解析了如何利用jQuery库实现文本区域(TextArea)的高度自动调整,以确保其高度能够根据输入的文本量动态变化,从而提供更好的用户体验。以下是对该主题的...

    Vue下textarea文本框根据内容自适应改变高度

    总的来说,创建Vue自定义组件`AutoHeightTextarea`可以方便地实现textarea根据内容自适应高度的效果,同时通过针对性的兼容性处理,可以确保在各种浏览器环境中都有良好的表现。在实际项目中,这样的组件可以大大...

    flex3 textArea 高度自适应

    在标题“flex3 textArea 高度自适应”中提到的问题,就是如何实现这样一个功能,让`TextArea`的大小随着其内容的增加而自动调整。 在描述中提到,已经有一个自定义的解决方案,可以依据文本内容自动调整`TextArea`...

    textarea高度自适应js代码

    为了解决这个问题,我们可以使用JavaScript或者jQuery来实现textarea的高度自适应功能,即根据textarea内的内容动态调整其高度,确保内容始终可见。 `textareaAutoHeight.jquery.js` 是一个基于jQuery的插件,它的...

    textarea 输入框自适应高度

    "textarea 输入框自适应高度"这个主题就是关于如何实现这样一个功能的探讨。 在HTML中,textarea元素默认是不会自动扩展的,当用户输入的文字超过了一定行数,就会出现滚动条。然而,通过一些JavaScript库或自定义...

    textarea自适应高度标签,去除难看的滚动条

    针对这些问题,我们可以采用特定的技术来实现 `textarea` 的高度自适应和去除滚动条。 首先,`textarea` 的高度自适应通常通过JavaScript库,如jQuery,来实现。jQuery 是一个强大的JavaScript库,它简化了DOM操作...

    微信小程序 内容自适应textarea表单组件(autoheight_textarea)

    textarea根据内容自适应高度 组件 注意:要监听input事件改变value值 使用: <autoheight_textarea value="{{value}}" placeholder="写个评论" bindinput="listenerinput"></autoheight_textarea>

    css textarea 高度自适应,无滚动条

    用css控制textarea文本域的高度随内容的变化而变化,不出现滚动条....首先,原则上实现textarea自适应必须适用css,不能直接适用“width=100%”这样的写法,具体示例: 复制代码代码如下: <style> textarea {

    Textarea根据内容自适应高度

    这个功能可以通过JavaScript来实现,正如标题“Textarea根据内容自适应高度”所描述的那样。本文将详细介绍如何使用JavaScript来控制`Textarea`的内容自适应高度,并提供相关代码示例。 首先,我们来看一下提供的...

    jquery实现textarea 高度自适应

    之前给大家分享过用Javascript控制文本框textarea高度随内容自适应增长收缩,今天花了点时间换了种实现方法,总结一下 代码如下: jQuery.fn.extend({  autoHeight: function(){  return this.each(function(){  ...

    div模拟textarea文本域实现高度自适应效果代码

    当我们决定使用div来模拟具有高度自适应效果的textarea文本域时,可以借助CSS中的min-height和max-height属性来实现。min-height属性定义了元素的最小高度,而max-height属性则定义了元素的最大高度。如果内容不足以...

    定宽的textarea根据内容自动调整高度

    为了解决这个问题,我们可以实现一个定宽的`textarea`,使其能够根据内容自动调整高度。这种功能在各种在线编辑器、评论区或表单填写场景中都非常实用。 在HTML中,`textarea`元素具有`rows`和`cols`属性,分别用于...

    jquery实现文本框textarea自适应高度

    在网页设计中,为了提供更好的用户体验,经常需要对文本框(`textarea`)进行自适应高度的设置,以便用户在输入大量文字时,文本框能够自动扩展高度,避免出现滚动条。`jQuery`库提供了一个方便的方法来实现这一功能...

    div实现自适应高度的textarea实现angular双向绑定

    本文将探讨如何用`div`实现自适应高度的textarea,并在Angular中实现双向数据绑定。 首先,为什么不用传统的`<textarea>`?虽然`<textarea>`可以设置固定行数并允许用户输入多行文本,但是它并不方便实现动态高度...

    解决Layui 表格自适应高度的问题

    但是,为了实现自适应高度,应避免这样做,而是通过CSS来控制行的高度。如果需要设定宽度,可以在field中设置`width`属性。 3. **使用Layui的响应式布局**:Layui提供了响应式布局的支持,可以通过`lay-size`属性来...

    textarea文本域宽度和高度width及height自动适应实现代码

    本文将详细介绍如何通过JavaScript和CSS来实现`textarea`文本域的宽度和高度自适应。 首先,对于宽度的自动适应,通常我们希望`textarea`能填满其父容器的宽度。在HTML中,我们可以给`textarea`添加一个CSS类,如`...

Global site tag (gtag.js) - Google Analytics