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

大佬,请问一下如何保证动态主题的style标签永远在head标签内最后一个呢 #15

Closed
iota9star opened this issue Jul 22, 2019 · 10 comments
Labels
enhancement New feature or request

Comments

@iota9star
Copy link

iota9star commented Jul 22, 2019

因为是异步组件,异步组件加载以后会新增style标签,然后覆盖之前的动态主题的style标签样式
我想到的办法:

  1. 把style标签放到body里面,但不太符合规范
  2. 监听head标签dom变化,手动将动态主题style标签移动到最后一位,但有性能问题
@hzsrc
Copy link
Owner

hzsrc commented Jul 22, 2019

要保证这个做什么,意义何在?

@iota9star
Copy link
Author

呃呃呃,异步加载的组件会产生新的style标签样式,然后就被后面的样式覆盖了,然后样式就不生效了

@hzsrc
Copy link
Owner

hzsrc commented Jul 22, 2019

你是说css被覆盖了?这个目前有个方案是在颜色的样式前加一个 body ,通过changeSelector配置

@iota9star
Copy link
Author

嗯嗯,异步加载的组件会产生新的style标签,然后覆盖动态主题style标签内的样式。我现在是改了下源码,把head改成body,下面是我的配置
1
2
[大佬能给我详细说一下怎么搞吗?我不太能看明白那个怎么用,我用的是ant-design-pro的配置,这个是 配置的地址

@hzsrc
Copy link
Owner

hzsrc commented Jul 22, 2019

之前的方案是这样:https://github.com/hzsrc/webpack-theme-color-replacer/blob/master/forElementUI/index.js

image

思路是把主题色样式的优先级提高,使之不会被覆盖。不过有时候会导致优先级提升过度的问题。
你说的放在body里面,试过确实有效吗,兼容性好不好呢?如果没问题,也不失为一个不错的方案。

@iota9star
Copy link
Author

放body里面大多数浏览器都没有问题,但是不符合规范,使用changeSelector已经可以了,多谢大佬

@iota9star
Copy link
Author

放body里面大多数浏览器都没有问题,但是不符合规范,使用changeSelector已经可以了,多谢大佬

@hzsrc style标签我后面查了一下,是可以放在body里面的,这样就完全可以保证style标签在最后一个并且不会被新的样式覆盖,但放到body里面并不是特别推荐,这里是文档地址style标签
BaiduShurufa_2019-10-5_14-8-23

希望可以加一个配置项可以按照个人选择是放在head还是放在body

@hzsrc
Copy link
Owner

hzsrc commented Oct 9, 2019

@iota9star 我测试过了,你说的这个方案比我说的提升优先级的方法好,我已经把插件代码升级了。使用1.3.1版本,会默认附加<style>到body尾部。对于确实需要放到head中的,可以通过一个 appendToEl: 'head'选项来附加到head中。

@iota9star
Copy link
Author

@hzsrc 干的漂亮

@hzsrc hzsrc added the enhancement New feature or request label Dec 14, 2019
@hzsrc
Copy link
Owner

hzsrc commented Jan 13, 2020 via email

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

No branches or pull requests

2 participants