Vue——ElementUI 如何修改消息提示框样式

前言

需求将弹出框添加样式,图1是原图,图2是需要实现的样式,我按照最原始的办法,找到类名,然后修改css,但是无论我新添加个类名也好,还是/deep/深度修改,都无法修改其样式,后经过研究,发现了问题,下面将我的代码和大家分享一下。
原图
(图1)
在这里插入图片描述
(图2)
在这里插入图片描述

代码分析
// 弹出警告提示框
this.$confirm('确认删除吗?', '警告', { type: 'warning'})
.then(() => {
  this.$message({
    message: '删除成功',
    type: 'success'
  })
}).catch(() => {})
...
<style lang="scss" scoped>
  ...
   .el-message-box__header{
    padding: 13px;
    border-bottom: #4970ad 2px solid;
    .el-message-box__title{
      font-size: 20px;
      color: #4970ad;
    }
  }
  .el-message-box__headerbtn{
    width: 30px!important;
    height: 30px!important;
    background: white;
    border: 2px solid #999;
    top: 10px;
    border-radius: 50%;
  }
  .el-message-box__headerbtn .el-message-box__close{
    color: #999999!important;
    line-height: 26px;
    font-weight: bold;
    font-size: 16px;
  }
</style>

因为多次修改无法改变其样式,所以发现在scoped的style中修改它的样式是无效的,因为ElementUI组件不可以给样式添加scoped。因此要想修改其样式就一定要去掉scoped,但是如果去掉scoped后,又不满足单组件的CSS样式,所以我们在写个style,附加在没有scoped的style中就可以实现了。

修改部分代码
<style lang="scss" scoped>
  ...
</style>
<style lang="scss" >
  ...
   .el-message-box__header{
    padding: 13px;
    border-bottom: #4970ad 2px solid;
    .el-message-box__title{
      font-size: 20px;
      color: #4970ad;
    }
  }
  .el-message-box__headerbtn{
    width: 30px!important;
    height: 30px!important;
    background: white;
    border: 2px solid #999;
    top: 10px;
    border-radius: 50%;
  }
  .el-message-box__headerbtn .el-message-box__close{
    color: #999999!important;
    line-height: 26px;
    font-weight: bold;
    font-size: 16px;
  }
</style>

然后图1就变成图2啦!

总结

修改样式时,先看其样式是否是局部单组件样式scoped,如果有,一定要注意,因为它会影响局部样式修改,所以当你样式无法修改,一定要检查下是否是scoped对其干扰了。

Vue.js 结合 Element UI 可以轻松地创建一个功能丰富的搜索框样式导航栏。Element UI 提供了预设的样式和组件,可以快速搭建界面。以下是实现步骤: 1. 首先,在 Vue 项目中安装 Element UI 和相关的依赖库: ``` npm install element-ui --save ``` 2. 引入所需的 CSS 文件,并在 Vue 的 main.js 或 App.vue 中导入 Element UI 框架: ```javascript import { createApp } from 'vue'; import ElementUI from 'element-plus'; import 'element-plus/dist/index.css'; // 引入全局样式 const app = createApp(App); app.use(ElementUI); ``` 3. 创建一个包含搜索框的导航栏模板,例如在 `nav.vue` 组件里: ```html <template> <el-menu :default-active="$route.path" class="navbar"> <el-menu-item index="/">首页</el-menu-item> <el-submenu index="1"> <template slot="title">菜单</template> <el-menu-item v-for="(item, index) in items" :key="index" :index="item.path">{{ item.name }}</el-menu-item> </el-submenu> <el-form-item style="text-align:right;"> <el-input v-model="searchText" placeholder="请输入搜索内容" @input="search"/> </el-form-item> </el-menu> </template> <script> export default { data() { return { searchText: '', items: [ { name: '子菜单1', path: '/submenu1' }, { name: '子菜单2', path: '/submenu2' } ] }; }, methods: { search(query) { this.$emit('search', query); // 当搜索框输入变化时,触发自定义事件传递给父组件 } } }; </script> ``` 4. 在父组件(如 App.vue)中引入并使用这个导航栏组件,并监听其 `search` 事件来处理搜索功能: ```html <template> <div id="app"> <nav-search @search="handleSearch"></nav-search> <!-- 这里是 nav.vue 的引用 --> <router-view></router-view> </div> </template> <script> import NavSearch from './components/NavSearch.vue'; export default { components: { NavSearch }, methods: { handleSearch(query) { console.log('搜索关键词:', query); // 这里可以根据查询关键字对路由或数据进行过滤操作 } } } </script> ``` 通过以上步骤,你就实现了Vue + Element UI 中的搜索框样式导航栏。用户可以在搜索框中输入内容,而导航栏的内容会根据输入的关键字进行动态筛选。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值