Element-plus修改样式

场景

通过样式穿透修改前端element组件样式。
实现

1.button按钮

::v-deep .el-button {

border-radius: 0;

border: 0;

background-color: rgba(0, 194, 255) !important;

color: black;

}

2.form表单

::v-deep .el-form {

text-align: left;

.el-form-item {

text-align: left;

.el-form-item__label {

color: skyblue;

text-align: left;

}

.el-form-item__content {

color: skyblue;

text-align: left;

}

}

}

  1. input

::v-deep .el-input {

width: 300px;

border: none;

.el-input__wrapper {

background-color: transparent !important;

border: none;

// border-color: rgba(37, 65, 125, 1) !important;

.el-input__inner {

color: skyblue;

}

}

}

  1. 内嵌过深的input以及type="textarea"的input

.el-input {

:deep(.el-input__wrapper) {

box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color)) inset;

// 去除input白色边框

--el-input-text-color: skyblue; // 修改input输入框字体颜色

--el-input-icon-color: rgb(208, 192, 192); // 修改icon颜色

}

}
.el-textarea{

:deep(.el-textarea__inner) {

box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color)) inset;

// 去除input白色边框

--el-input-text-color: skyblue; // 修改input输入框字体颜色

--el-input-icon-color: rgb(208, 192, 192); // 修改icon颜色

background-color: transparent !important;

resize: none;

}

}

5.table内部加入透明滚动条

::v-deep .el-table__inner-wrapper {

overflow-y: auto;

&::-webkit-scrollbar {

width: 4px; /* y轴滚动条宽度 /
height:4px; /
x轴滚动条宽度 */

background-color: #f5f5f5; /滚动条背景 /

}

另一种改变滚动条样式的方法:

:deep(.gantt_layout_content .gantt_task_vscroll) {

&::-webkit-scrollbar {

width: 14px;

height: 14px;

}

&::-webkit-scrollbar-thumb {

background-color: #345a75;

border-radius: 10px;

}

&::-webkit-scrollbar-track {

background-color: transparent;

}

}

最后,记录一种常见的报错,因不对element组件设置固定宽高而导致的视图大小变动弹出的计算错误

c 复制代码
ResizeObserver loop completed with undelivered notifications.

解决办法是将下列代码放置在引用该页面的父组件中,习惯放在js最后一行:

const debounce = (fn, delay) => {

let timer = null;

return function () {

let context = this;

let args = arguments;

clearTimeout(timer);

timer = setTimeout(function () {

fn.apply(context, args);

}, delay);

}

}

const _ResizeObserver = window.ResizeObserver;

window.ResizeObserver = class ResizeObserver extends _ResizeObserver{

constructor(callback) {

callback = debounce(callback, 16);

super(callback);

}

}

相关推荐
程序员Agions7 小时前
useMemo、useCallback、React.memo,可能真的要删了
前端·react.js
David凉宸7 小时前
Vue 3 + TS + Vite + Pinia vs Vue 2 + JS + Webpack + Vuex:对比分析
javascript·vue.js·webpack
滕青山7 小时前
Vue项目BMI计算器技术实现
前端·vue.js
子兮曰7 小时前
深入浏览器指纹:Canvas、WebGL、Audio是如何暴露你的身份的?
前端·浏览器·canvas
月亮补丁7 小时前
AntiGravity只能生成 1:1 图片?一招破解尺寸限制
前端
何中应8 小时前
MindMap部署
前端·node.js
boooooooom8 小时前
Pinia必学4大核心API:$patch/$reset/$subscribe/$onAction,用法封神!
javascript·vue.js·面试
NAGNIP8 小时前
程序员效率翻倍的快捷键大全!
前端·后端·程序员
wxin_VXbishe8 小时前
C#(asp.net)学员竞赛信息管理系统-计算机毕业设计源码28790
java·vue.js·spring boot·spring·django·c#·php
一个网络学徒8 小时前
python5
java·服务器·前端