Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛[BUG] 2.8.3, 2.8.4 样式渲染有问题 #8955

Open
liuzhaowei55 opened this issue Jan 7, 2025 · 11 comments
Open

🐛[BUG] 2.8.3, 2.8.4 样式渲染有问题 #8955

liuzhaowei55 opened this issue Jan 7, 2025 · 11 comments

Comments

@liuzhaowei55
Copy link

liuzhaowei55 commented Jan 7, 2025

提问前先看看:

https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md

🐛 bug 描述

2.8.2 -> 2.8.3 之后样式全掉了,2.8.2 显示正常

image

📷 复现步骤

使用了

<StyleProvider layer>
</StyleProvider>

🏞 期望结果

💻 复现代码

https://stackblitz.com/edit/vitejs-vite-kkfjszwu?file=src%2FApp.jsx

© 版本信息

  • ProComponents 版本:2.8.3

🚑 其他信息

@liuzhaowei55
Copy link
Author

@chenshuai2144

@Wxh16144
Copy link
Member

2.8.3 我倒是改过 layer 有关代码 PR #8904

用你的复现代码,安装 2.8.2 也是有问题的。 所以不确定是不是和我那个改动有关。

@liuzhaowei55
Copy link
Author

我需要重新调整下这段复现代码,目前是受项目本身 index.css 影响,展示不正常,我重新调整一下。

@liuzhaowei55
Copy link
Author

liuzhaowei55 commented Jan 10, 2025

https://stackblitz.com/edit/vitejs-vite-kkfjszwu?file=src/App.jsx

对代码做了一个调整,模拟我的真实业务代码引入了 Tailwind,以及修改了代码嵌套。

代码嵌套在 <PageContainer /> 中可以复现问题

@Wxh16144
Copy link
Member

Wxh16144 commented Jan 10, 2025

感谢补充,我还没接触过 tailwind css,我去学习一下 顺便看看这个问题。

@liuzhaowei55 liuzhaowei55 changed the title 🐛[BUG] 2.8.3 样式渲染有问题 🐛[BUG] 2.8.3, 2.8.4 样式渲染有问题 Jan 20, 2025
@liuzhaowei55
Copy link
Author

2.8.3 我倒是改过 layer 有关代码 PR #8904

用你的复现代码,安装 2.8.2 也是有问题的。 所以不确定是不是和我那个改动有关。

重新看了这个 PR,因为定义有 dependencies

Image

所以生成了下图第一个方框的 layer 定义

Image

但项目本身配置有根据文档配置 @layer tailwind-base, antd; 这个配置最终就没有生效了

可以考虑移除 dependencies 配置,由用户在使用中自定义 @layer 属性

@Wxh16144
Copy link
Member

Wxh16144 commented Jan 21, 2025

我花了一点时间看了一下,貌似是符合预期的,tailwind-base layer 会生成默认的 button 样式, 把 antd 的样式给覆盖掉了。

Image

@Wxh16144
Copy link
Member

https://tailwindcss.com/docs/adding-custom-styles#using-css-and-layer 看了一下文档,貌似这里可以修改 base 样式的逻辑。

@Wxh16144
Copy link
Member

@layer tailwind-base, antd;

@layer tailwind-base {
  @tailwind base;
}

@layer antd {
  @tailwind base;
}

@tailwind components;
@tailwind utilities;

我把 antd layer 也应用了 tailwind base,这样貌似就好了🤔

@Wxh16144
Copy link
Member

重新看了这个 PR,因为定义有 dependencies

Image 所以生成了下图第一个方框的 layer 定义 Image 但项目本身配置有根据[文档](https://ant.design/docs/react/compatible-style-cn#tailwindcss-%E6%8E%92%E5%B8%83-layer)配置 `@layer tailwind-base, antd;` 这个配置最终就没有生效了

可以考虑移除 dependencies 配置,由用户在使用中自定义 @layer 属性

我又看了一下,我前面说的可能有问题,确实是 css 插入顺序有问题..

@Wxh16144
Copy link
Member

确实是 css 插入顺序有问题..

看了一下 antd cssinjs 实现, 目前来看可以通过 container={document.body} 将 css 样式插入到 body 来规避顺序问题。倒是能解决 layer 问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants