在 Element Plus 中,el-input
组件支持 textarea
类型的输入框。要实现 textarea
自适应内容并撑满父容器,可以通过以下步骤实现:
autosize
属性el-input
组件提供了一个 autosize
属性,可以自动调整 textarea
的高度以适应内容。你可以将 autosize
设置为 true
或者一个包含 minRows
和 maxRows
的对象。
<template>
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 6 }"
v-model="inputText"
></el-input>
</template>
<script>
export default {
data() {
return {
inputText: ''
};
}
};
</script>
如果你希望 textarea
撑满父容器的高度,可以使用 CSS 来实现。你可以将 textarea
的高度设置为 100%
,并确保父容器有明确的高度。
<template>
<div class="container">
<el-input
type="textarea"
:autosize="{ minRows: 2 }"
v-model="inputText"
class="full-height-textarea"
></el-input>
</div>
</template>
<script>
export default {
data() {
return {
inputText: ''
};
}
};
</script>
<style scoped>
.container {
height: 300px; /* 父容器的高度 */
display: flex;
flex-direction: column;
}
.full-height-textarea {
flex: 1;
}
.full-height-textarea textarea {
height: 100%;
}
</style>
如果你希望 textarea
的高度根据内容动态调整,并且撑满父容器,可以结合 autosize
和 CSS 来实现。
<template>
<div class="container">
<el-input
type="textarea"
:autosize="{ minRows: 2 }"
v-model="inputText"
class="dynamic-height-textarea"
></el-input>
</div>
</template>
<script>
export default {
data() {
return {
inputText: ''
};
}
};
</script>
<style scoped>
.container {
height: 300px; /* 父容器的高度 */
display: flex;
flex-direction: column;
}
.dynamic-height-textarea {
flex: 1;
}
.dynamic-height-textarea textarea {
height: 100%;
resize: none; /* 禁止用户手动调整大小 */
}
</style>
autosize
属性会根据内容自动调整 textarea
的高度,但如果你希望 textarea
撑满父容器的高度,需要结合 CSS 来实现。textarea
的高度。通过以上方法,你可以实现 el-input
的 textarea
自适应内容并撑满父容器。