样式冲突修复组件

在我写一个页面的时候分页器样式被扰乱了,通过查看元素发现样式被覆盖了,是因为有协作者在开发其他页面的时候将一些样式加在了 body 样式里面了,这个标签选择器将我的组件内部的样式覆盖了

那么解决方法就是将和扰乱样式相关的样式从 app.scss 中提取出来,单独写一个组件去实现,然后针对特定的页面进行外套,从而不影响其他页面,这个过程可以先写一个单独组件,然后去路由守卫中进行分支套层

复制代码
import React from 'react';

interface MtdFixProps {
  children?: React.ReactNode;
  className?: string;
}

const MtdFix: React.FC<MtdFixProps> = ({ children, className }) => {
  return (
    <>
      <style>
        {`
          .mtd-prime-select,
          .mtd-prime-date-picker {
            width: 100% !important;
          }

          .form-card-box:nth-child(2) {
            margin-top: 4px !important;
          }
        `}
      </style>
      <div className={className} style={{ height: '100%', width: '100%' }}>
        {children}
      </div>
    </>
  );
};

export default MtdFix;

注意要 100% 确保子组件的空间占据

那么具体使用的时候就去外面套一层例如

复制代码
const Index = () => {
  return (
    <MtdFix>
      <HomeProvider>
        <CUIProvider chatType="main">
          <Main />
          {/* 用户引导 */}
          <HomePageUserGuide />
        </CUIProvider>
      </HomeProvider>
    </MtdFix>
  );
};
相关推荐
牧野星辰19 小时前
eslint你不懂的都在这里,不信你进来看嘛~
前端·eslint
FogLetter19 小时前
设计模式奇幻漂流:从单例孤岛到工厂流水线
前端·设计模式
ohyeah19 小时前
深入理解 JavaScript 数组:从创建到遍历的完整指南
前端·javascript
逛逛GitHub19 小时前
GitHub 开源 AI 好玩神器,自动记录你的一天。
前端·github
hollyhuang20 小时前
正则校验:校验只能输入数字且首位不能是0
前端
一室易安20 小时前
模仿elementUI 中Carousel 走马灯卡片模式 type=“card“ 的自定义轮播组件 图片之间有宽度
前端·javascript·elementui
在下胡三汉20 小时前
创建轻量级 3D 资产 - Three.js 中的 GLTF 案例
开发语言·javascript·3d
脸大是真的好~20 小时前
黑马JAVAWeb -Vue工程化 - Element Plus- 表格-分页条-中文语言包-对话框-Form表单
前端·javascript·vue.js
程序猿_极客20 小时前
【期末网页设计作业】HTML+CSS+JS 香港旅游网站设计与实现 (附源码)
javascript·css·html
一个小潘桃鸭20 小时前
记录:echarts tooltip内容过多时,会导致部分内容遮挡
前端