textarea只允许上下调节尺寸

对于extarea,因为如果不做限制的话,它是可以自由调节尺寸的,对于这一点我相信用户是非常喜欢的,因为每个人都有自己认为合适的尺寸,但是对于前端来说就比较头疼了,因为随意调节宽高,就会破坏整体布局,

所以以前一直都是在css,加上一句resize:none,比如像合作意向描述那个框。

 

但是这样做虽然可以达到页面的绝对控制,但是却失去了设计textarea的初衷,对于如今的pc或移动端(已经占据了80%以上流量入口),我们一般不是担心高度的调节,而是宽度!

所以我们给他一个绝对或相对宽度,而用户只能调节高度(这也是一般用户的需求)

解决方法:

  在textarea css中加入min-width:90%(加入你自己的高度), max-width:90%(与前一个高度保持一致),如图:只能上下进行拖动

 

优点:

  1. 不影响原有布局

  2. 增加用户体验。

转载于:https://www.cnblogs.com/wangyuda/p/5895279.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文本区域(textarea)本身是可以调节大小的,但是在 Vue 中,如果没有定义相应的样式或者事件,textarea 将不能调节大小。可以使用 CSS 中的 `resize` 属性来控制 textarea 是否可以调节大小,例如: ``` textarea { resize: both; /* 可以在水平和垂直方向上调节大小 */ } ``` 另外,如果需要在 Vue 中实现 textarea 调节大小的功能,可以通过监听鼠标事件来实现。例如: ``` <template> <div> <textarea ref="textarea" @mousedown="startResize" @mouseup="stopResize"></textarea> </div> </template> <script> export default { data() { return { isResizing: false, startX: 0, startY: 0 }; }, methods: { startResize(event) { this.isResizing = true; this.startX = event.clientX; this.startY = event.clientY; }, stopResize() { this.isResizing = false; } }, mounted() { const textarea = this.$refs.textarea; textarea.addEventListener('mousemove', (event) => { if (this.isResizing) { const dx = event.clientX - this.startX; const dy = event.clientY - this.startY; textarea.style.width = `${textarea.offsetWidth + dx}px`; textarea.style.height = `${textarea.offsetHeight + dy}px`; this.startX = event.clientX; this.startY = event.clientY; } }); } }; </script> ``` 这里使用了 `mousedown`、`mouseup` 和 `mousemove` 事件来实现调节大小功能。当用户按下鼠标左键时,设置 `isResizing` 为 true,并记录当前鼠标位置。当用户松开鼠标左键时,设置 `isResizing` 为 false。在 `mousemove` 事件中,如果 `isResizing` 为 true,则计算鼠标位置的变化量,根据变化量调整 textarea 的宽度和高度,并更新记录的鼠标位置。通过这种方式,就可以在 Vue 中实现 textarea调节大小功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值