一、关于使用element框架一些测试建议覆盖的样式
1.取消按钮的focus效果
(1) css样式覆盖
// element按钮部分伪类样式覆盖
// 用于覆盖element按钮focus的样式
.el-button:not(.is-link):not(.is-text):not(.is-disabled):not(.is-has-bg):focus{
color: var(--el-button-text-color) !important;
background-color: var(--el-button-bg-color) !important;
border-color: var(--el-button-border-color) !important;
}
// 用于保留element按钮hover和active的样式
.el-button:not(.is-link):not(.is-text):not(.is-disabled):not(.is-has-bg):hover{
color: var(--el-button-hover-text-color) !important;
background-color: var(--el-button-hover-bg-color) !important;
border-color: var(--el-button-hover-border-color) !important;
}
.el-button:not(.is-link):not(.is-text):not(.is-disabled):not(.is-has-bg):active{
color: var(--el-button-active-text-color) !important;
background-color: var(--el-button-active-bg-color) !important;
border-color: var(--el-button-active-border-color) !important;
}
// link
.el-button.is-link:not(.is-disabled):focus{
color: var(--el-button-text-color) !important;
}
.el-button.is-link:not(.is-disabled):hover{
color: var(--el-button-hover-link-text-color) !important;
}
.el-button.is-link:not(.is-disabled):active{
color: var(--el-button-active-color) !important;
}
// text
.el-button.is-text:not(.is-disabled):not(.is-has-bg):focus{
color: var(--el-button-text-color) !important;
background-color: transparent !important;
}
.el-button.is-text:not(.is-disabled):not(.is-has-bg):hover{
background-color: var(--el-fill-color-light) !important;
}
.el-button.is-text:not(.is-disabled):not(.is-has-bg):active{
background-color: var(--el-fill-color) !important;
}
// bg
.el-button.is-has-bg:not(.is-disabled):focus{
color: var(--el-button-text-color) !important;
background-color: var(--el-fill-color-light) !important;
}
.el-button.is-has-bg:not(.is-disabled):hover{
background-color: var(--el-fill-color) !important;
}
.el-button.is-has-bg:not(.is-disabled):active{
background-color: var(--el-fill-color-dark) !important;
}
(2) js失焦事件
const onClick = (e) => {
let target = e.target
if (e.target.nodeName == 'SPAN') {
target = e.target.parentNode
}
target.blur()
}
2.针对disable的input,添加文字省略样式
.el-input.is-disabled .el-input__inner {
text-overflow: ellipsis;
}
二、一些个性化样式
1.collapse组件箭头添加文字,修改箭头角度
:deep(.el-collapse-item) {
border: 1px solid;
border-radius: 4px;
border: 1px solid #d9d9d9;
}
// 阻止点击header触发开关事件
:deep(.el-collapse-item__header) {
pointer-events: none;
}
:deep(.el-collapse-item__arrow) {
font-style: normal;
font-weight: initial;
font-size: 14px;
transform: rotate(0deg); // 添加了文字,不需要旋转
color: #409eff;
pointer-events: initial; // 箭头位置允许触发开关事件
// 关闭窗口,箭头图标旋转样式
svg {
transform: rotate(90deg);
transition: 300ms;
}
}
:deep(.el-collapse-item__arrow.is-active) {
// 打开窗口,箭头图标旋转样式
svg {
transform: rotate(-90deg);
transition: 300ms;
}
}
// 关闭窗口文字
:deep(.el-collapse-item__arrow:before) {
content: '展开';
padding-right: 4px;
}
// 打开窗口文字
:deep(.el-collapse-item__arrow.is-active:before) {
content: '收起';
padding-right: 4px;
}
// 增加宽度显示完整文字和图标
:deep(.el-collapse-item__arrow) {
min-width: 55px;
}
2.自定义封装 MessageBox 样式
import { ElMessageBox } from 'element-plus'
import { QuestionFilled } from '@element-plus/icons-vue'
import { h } from 'vue'
/**
* 确认提示窗
* @param {*} title 标题
* @param {*} message 描述
* @returns
*/
const confirm = (title, message) => {
return new Promise((resolve, reject) => {
ElMessageBox.confirm('', {
confirmButtonText: '确定',
cancelButtonText: '取消',
autofocus: false, // 取消自动获得焦点
'show-close': false,
message: () =>
h(
'div',
{
style: `display: flex;align-items: ${
message ? 'flex-start' : 'center'
};`
},
[
h(
'div',
{ style: `height:24px;${message ? 'margin-top:-3px;' : ''}` },
[
h(QuestionFilled, {
color: '#ffbf00',
style: 'width:24px;height:24px;padding-right:10px;'
})
]
),
h('div', null, [
h('div', { class: 'el-message-box__title' }, [
h('span', { style: 'word-break: break-all;' }, `${title}`)
]),
h(
'p',
{ style: `padding-top:8px;display:${message ? '' : 'none'}` },
`${message}`
)
])
]
)
})
.then(() => {
resolve()
})
.catch((e) => {
console.log(e)
})
})
}
export { confirm }
标签:el,样式,button,element,color,important,plus,var,--
From: https://www.cnblogs.com/antguo/p/17702880.html