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);

}

}

相关推荐
Hyyy28 分钟前
什么是bun?和pnpm有什么区别
前端·面试·bun
IT_陈寒14 小时前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
kyriewen14 小时前
我用 50 行代码重写了 React Router 核心,终于搞懂了前端路由原理
前端·javascript·react.js
WebInfra15 小时前
Rspack 2.1 发布:React Compiler 提速 10 倍!
前端
李明卫杭州15 小时前
CSS 媒体查询详解:一文掌握响应式设计的核心技术
前端
lichenyang45315 小时前
从 H5 按钮到 OpenHarmony 能力调用:我如何理解 ASCF 的运行链路
前端
下家16 小时前
我放弃了 Vue/React,选择自研框架
前端·前端框架
Asize16 小时前
HTML5 Canvas 基础:从按帧动画到 ECharts 数据可视化
前端·javascript·canvas
默_笙16 小时前
🎄 后端给我一堆扁平数据,我 10 行代码把它变成了树
前端·javascript
Mahut16 小时前
我用 Electron + FFmpeg 做了一个本地视频处理工作站 ClipForge
前端·ffmpeg·electron