elpopover ::after style overwrite bug All In One

el-popover ::after style overwrite bug All In One

overwrite bug ❌

.table-custom-popover-class 与 .el-popper 或 .el-popper[x-placement^="top"]

类名同优先级

.table-custom-popover-class {
    min- 30px !important;
     auto !important;
    font-size: 12px !important;
    color: #FFFFFF !important;
    background: #303133 !important;
    .el-popper[x-placement^="top"] .popper__arrow,
    .el-popper[x-placement^="top"] .popper__arrow::after {
        border-top-color:#303133 !important;
        display: none !important;
        border-color: #303133 !important;
    }
}

solution

CSS 优先级 bug,同级别的多个 class, 后面 class 会覆盖前面的样式, 导致前面的样式失效 ✅

.custom-popover-class {
    min- 30px !important;
     auto !important;
    font-size: 12px !important;
    color: #FFFFFF !important;
    background: #303133 !important;
}

.custom-popover-class .popper__arrow::after {
    border-top-color:#303133 !important;
}

/*
.custom-popover-class.el-popper[x-placement^="top"] .popper__arrow::after {
     border-top-color:#303133 !important;
}
*/

holy shit & solution

x-placemen 可以省略,或者匹配正确 top/bottom/...

image


.icon-question-circle-dark {
    background: #000 !important;
    color: #fff !important;
}

// css important not work ??? webpack 打包顺序 bug

.icon-question-circle-dark[x-placement^="bottom"] .popper__arrow::after {
-   border-bottom-color: #000 !important;
+   border-top-color: #000 !important;
}

.icon-question-circle-dark[x-placement^="top"] .popper__arrow::after {
-   border-bottom-color: #000 !important;
+   border-top-color: #000 !important;
}


.icon-question-circle-dark .popper__arrow::after {
-   border-bottom-color:#303133 !important;
+   border-top-color:#303133 !important;
}

demo

refs

https://element.eleme.io/#/zh-CN/component/popover

https://codepen.io/xgqfrms/pen/OJxraVq

https://github.com/xgqfrms/vue/issues/216



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 ️,侵权必究⚠️!


xgqfrms
原文地址:https://www.cnblogs.com/xgqfrms/p/15802812.html