按需引入element-plus中的message和message-box后,缺少样式

文章讲述了在使用Element-UI中的MessageBox进行消息弹框时,确认按钮无样式的问题,通过引入相应CSS样式文件解决,并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 使用elenment-ui中的MessageBox 消息弹框时,确认消息。按需引入后没有样式。

2. 原代码

const open = () => {
        ElMessageBox.confirm(
          '该操作将永久删除该用户,是否继续?',
          '提示',
          {
            confirmButtonText: '确认',
            cancelButtonText: '取消',
            type: 'warning'
          }
        )
          .then(() => {
            ElMessage({
              type: 'success',
              message: 'Delete completed'
            })
          })
          .catch(() => {
            ElMessage({
              type: 'info',
              message: 'Delete canceled'
            })
          })
      }

3. 引入相应的样式即可。

import { ElMessage, ElMessageBox } from 'element-plus'
import 'element-plus/theme-chalk/el-message.css'
import 'element-plus/theme-chalk/el-message-box.css'
<think>根据用户提供的系统级指令当前求:1.用户询问的是ElementUIPlus(现称ElementPlus)中MessageBox组件的appendTo属性用法示例。2.要提供结构清晰的中文回答。3.回答中要使用正确的LaTeX格式(但此问题可能涉及较少数学公式,若有变量名等则用行内格式)。4.生成相关问题。分析:-ElementPlusMessageBox是一个对话框组件,通常用于确认消息、提交内容等。-appendTo属性用于指定MessageBox的挂载位置(DOM节点),默认是append到document.body,但在某些情况下可能要挂载到特定容器内(例如在嵌套DOM结构中避免样式冲突)。计划回答结构:1.解释appendTo属性的作用适用场景。2.提供一个基础示例(默认情况)。3.展示appendTo的使用示例(如指定挂载到某个特定元素)。4.可能要注意的事项(如样式问题、定位问题等)。5.生成相关问题。注意:由于用户求明确要求示例,因此重点放在代码示例上。使用Vue3的语法(ElementPlus基于Vue3)。由于无法实际运行代码,示例代码主要展示用法。</think> ### ElementUI Plus MessageBox `appendTo` 属性使用指南 在 ElementUI Plus (Element Plus) 中,`MessageBox` 组件的 `appendTo` 属性用于控制对话框的挂载位置。默认情况下,弹出框会挂载到 `<body>` 内,但通过 `appendTo` 可以指定挂载到特定 DOM 节点。 #### 📌 基本语法 ```javascript this.$confirm('确认删除此项吗?', '提示', { appendTo: document.querySelector('.custom-container'), // 指定挂载点 callback: action => { if (action === 'confirm') { // 删除操作 } } }) ``` #### 🧩 使用场景示例 1. **避免样式冲突** 当要限制弹出框的 CSS 作用域时: ```html <div class="dialog-container"> <el-button @click="openMsgBox">打开消息框</el-button> </div> <script> export default { methods: { openMsgBox() { this.$alert('内容将挂载到 .dialog-container', '提示', { appendTo: document.querySelector('.dialog-container') }) } } } </script> ``` 2. **嵌套布局控制** 在复杂布局中保证弹出框正确定位: ```javascript this.$prompt('请输入邮箱', '验证', { appendTo: this.$refs.formLayout.$el, // 挂载到Vue组件实例 inputPattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/, inputErrorMessage: '邮箱格式错误' }) ``` 3. **动态容器挂载** 结合 Vue 的 ref 动态指定容器: ```javascript export default { mounted() { this.container = document.getElementById('msgbox-root') }, methods: { showBox() { this.$confirm('确定提交吗?', { appendTo: this.container, distinguishCancelAndClose: true }) } } } ``` #### ⚠️ 注意事项 1. `appendTo` 接受 DOM 元素作为值: ```javascript appendTo: document.getElementById('custom-root') // 或 appendTo: this.$refs.containerElement ``` 2. 常见错误: ```javascript // 错误:传入的是选择器字符串而非DOM元素 appendTo: '.container' // ✘ 无效 appendTo: document.querySelector('.container') // ✔ 正确 ``` 3. 特殊场景下可能要配合 CSS 使用: ```css /* 当挂载到特定容器时要调整定位 */ .dialog-container .el-message-box { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } ``` [^1]: 示例参考 Element Plus 官方文档中组件挂载部分 [^2]: 基于 Vue 生命周期中 DOM 元素获取的最佳实践
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值