男胖友de部落格

Vue3 Tsx 覆盖element Plus默认样式

· nanpangyou

Vue3 Tsx 覆盖element Plus默认样式

在使用tsx编写Vue3代码的时候遇到一个问题: 使用Tsx就没办法包含style标签,无法使用::v-deep()的方式来覆盖element Plus的默认样式。

解决方案

  1. 全局覆盖 只需要在main.ts中引入css文件即可(css文件中对想修改的样式重新编写)

  2. 局部覆盖 采用css-module的方式,将css文件命名为xxx.module.css,在tsx文件中引入,注意在对应的element样式前添加:global,如下:

import s from "./xxx.module.scss";
export const xxx = defineComponent({
  setup: () => {
	return ()=>(
	<div class={s.wrapper}>
		<el-input class={s.xxx}></el-input>
	</div>
	)
  }
})
xxx.displayName = "xxx";
export default xxx;
// xxx.module.scss
.wrapper {
  :global(.el-input__inner) {
	color: red;
  }
}