修改第三方组件库(例:element-plus)样式的万能方法(小白看这里)。

前言

       开发中总是会用到第三方组件库,虽然封装了功能确实好用,但是却牺牲了一部分自定义样式。以element为例,我个人不太喜欢用这个组件,因为他高度封装化,就让它自定义样式变得非常困难且繁琐,尤其是对于前台开发。但耐不住功能确实多,开发后台时他就是首选,在开发前台时也会有人用。在此我总结了修改样式的整体流程和思路,我会演示一遍流程,对于其他第三方组件库也同样适用。

步骤

1.明确要修改的样式名

  • 以element-plus的表单组件为例,我新建了一个空页面,里面只有一个简单的表单,我们尝试修改表单验证时的提示文字样式(我想这个需求足够小众了)。

  •   打开控制台,把鼠标移到要修改的元素上

  • 随便在控制台的样式上修改一下,如元素发生相应的变化,就说明拿到了对的元素类名。此处获取到了样式的类名 .el-form-item__error

2. 在style中使用深度样式修改

  • 比如我想修改它的颜色名和内边距
::v-deep .el-form-item__error {
    //如确认找到的样式类名无误但是不生效,可能是原样式写在了html标签中,此时请在样式后加!important提升样式优先级
    color: skyblue; 
    padding: 0;
  }
  • 可以在右边的样式查看中看到原本的样式已经被覆盖,效果展示:

3. 修改响应样式(:hover,:active)

       对于修改响应样式也是一样的步骤,只不过可能需要强制元素状态来阻止样式名消失。

 

3. 上述示例源码

无论是vue还是别的框架,因只涉及到样式修改,所以此步骤通用。

<template>
    <div class="demo2">
        <el-form ref="formRef" :model="queryParams" label-width="auto" :rules="rules">
            <el-form-item label="所属地区:" prop="report_content">
                <el-input v-model="queryParams.report_content" size="small" />
            </el-form-item>
            <el-form-item label="主体:" prop="report_person">
                <el-input v-model="queryParams.report_person" size="small" />
            </el-form-item>
            <el-form-item label="链接:" prop="report_file">
                <el-input v-model="queryParams.report_file" size="small" />
            </el-form-item>
            <el-form-item label="电话:" prop="report_phone">
                <el-input v-model="queryParams.report_phone" size="small" />
            </el-form-item>
        </el-form>
    </div>
</template>

<script setup>
import { reactive, ref } from 'vue'
let rules = reactive({
    dept_name: [{
        equired: true, message: "请输入所属地区", trigger: "blur"
    }],
    report_content: [{
        required: true,
        message: '请输入内容',
        trigger: 'blur',
    }],
    report_person: [{
        required: true,
        message: '请输入创建者人',
        trigger: 'blur',
    }],
    report_phone: [{
        required: true,
        message: '请输入正确的电话',
        trigger: 'blur',
    }, { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }],
});
let queryParams = reactive({
    report_content: "",
    report_person: "",
    report_file: "",
    report_phone: ""

})
</script>

<style scoped>
.demo2 {
    border: 1px solid black;
    padding: 10px;
    border-radius: 10px;
}

::v-deep .el-form-item__error {
    color: skyblue;
    padding: 0;
}

::v-deep .el-input__wrapper.is-focus {
    box-shadow: 0 0 0 1px purple;
}
</style>

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值