el-input type=textarea设置了autosize之后高度计算异常
时间: 2024-05-14 21:14:07 浏览: 331
可能是由于父元素的高度没有被正确计算导致的。可以尝试以下方法:
1. 确保父元素的高度被正确计算,可以尝试设置父元素的高度为固定值或使用flex布局。
2. 如果父元素的高度已经被正确计算,可以尝试重新计算textarea的高度。可以使用以下代码:
```javascript
this.$nextTick(() => {
this.$refs.textarea.$refs.input.style.height = 'auto';
this.$refs.textarea.$refs.input.style.height = this.$refs.textarea.$refs.input.scrollHeight + 'px';
});
```
其中,`this.$refs.textarea`为el-textarea组件的引用。这段代码在textarea的内容发生变化时重新计算高度。
3. 如果以上方法都无效,可以尝试使用第三方自适应高度插件,如autosize.js。
相关问题
el-input type=textarea autosize为ture,如何知道用户手动调整了高度
当使用 `el-input` 组件的 `type` 属性为 `textarea`,并且设置 `autosize` 属性为 `true` 时,用户手动调整高度的事件可以通过监听 `input` 事件来实现。当用户手动调整了文本框的高度时,`input` 事件会被触发。在事件处理函数中,可以通过 `this.$refs.textarea.$refs.textarea.style.height` 获取当前文本框的高度值,从而知道用户手动调整的高度。以下是示例代码:
```
<template>
<el-input
ref="textarea"
type="textarea"
autosize
@input="handleTextareaInput"
></el-input>
</template>
<script>
export default {
methods: {
handleTextareaInput() {
const height = this.$refs.textarea.$refs.textarea.style.height;
console.log('当前高度:', height);
}
}
};
</script>
```
el-input type=textarea高度
el-input type=textarea的高度可以通过设置rows属性来控制,例如:
<el-input type="textarea" :rows="5"></el-input>
这样就可以将高度设置为5行的高度。如果需要自适应高度,可以设置autosize属性为true,例如:
<el-input type="textarea" autosize></el-input>
这样输入框的高度会根据内容自适应。
阅读全文