1.原先修改el-input 中的placeholder样式
<style lang="scss" scoped>
:deep(.el-input__inner::placeholder) {
color: black;
}
</style>
2. 给placeholder样式添加CSS变量
<style lang="scss" scoped>
:deep(.el-input__inner::placeholder) {
color: var(--inputColor) //使用css变量 注意变量前需要加 --
}
</style>
3. 声明一个修改颜色的变量 colorVal
<script lang="ts" setup>
import {ref} from 'vue'
const colorVal=ref('#a8abb2')
</script>
4. el-input 标签中给 --inputColor变量赋值,并添加点击事件
<template>
<div>
<el-input placeholder="你好" :style="{ '--inputColor': colorVal}"></el-input>
<el-button @click="changeColor">更改placeholder颜色</el-button>
</div>
</template>
<script lang="ts" setup>
import {ref} from 'vue'
const colorVal=ref('#a8abb2')
const changeColor=()=>{
colorVal.value='black'
}
</script>
完整代码如下:
<template>
<div>
<el-input placeholder="你好" :style="{ '--inputColor': colorVal}"></el-input>
<el-button @click="changeColor">更改颜色</el-button>
</div>
</template>
<script lang="ts" setup>
import {ref} from 'vue'
const colorVal=ref('#a8abb2')
const changeColor=()=>{
colorVal.value='black'
}
</script>
<style lang="scss" scoped>
:deep(.el-input__inner::placeholder) {
color: var(--inputColor)
}
</style>