vue3动态添加style标签
时间: 2024-12-30 20:16:42 浏览: 10
### Vue3 动态创建和插入 Style 标签
在 Vue3 中动态创建并插入 `style` 标签可以通过 JavaScript 的 DOM 操作实现。下面展示了一种利用原生 JavaScript 和 Vue 组合 API 来完成此操作的方式。
#### 方法概述
为了实现在运行时向页面注入自定义样式的功能,可以编写一段逻辑用于生成 `<style>` 元素,并将其附加至文档头部 (`<head>`) 或其他指定位置。该过程涉及到了解如何安全地构建 CSS 文本以及正确处理浏览器兼容性等问题[^1]。
#### 实现示例
```javascript
import { onMounted } from "vue";
export default {
setup() {
const addDynamicStyle = () => {
let styleElement = document.createElement('style');
styleElement.type = 'text/css';
// 定义要应用的CSS规则字符串
const cssRules = `
.dynamic-class {
background-color: yellow;
font-weight: bold;
}
`;
if (styleElement.styleSheet) {
// IE8 及更早版本支持
styleElement.styleSheet.cssText = cssRules;
} else {
styleElement.appendChild(document.createTextNode(cssRules));
}
// 将新创建的 <style> 节点追加到 head 部分内
document.head.appendChild(styleElement);
};
onMounted(() => {
addDynamicStyle();
});
return {};
},
};
```
这段代码展示了怎样在一个组件挂载完成后执行一次性的样式注册动作。它会检查当前环境是否为 Internet Explorer 并相应调整设置方式;对于现代浏览器,则直接采用标准做法将文本节点作为子项加入新建的 `style` 元素之中[^2]。
阅读全文