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

Embed API 以外の CSS が邪魔されないように仕組みを考える #226

Open
keichan34 opened this issue Aug 6, 2021 · 6 comments

Comments

@keichan34
Copy link
Member

埋め込み先サイトのCSSにより表示が崩れるケースが有る #224

  • web components で対応できる? Add experimental web components #216 ?
  • shadow DOM で対応できる?mapbox-gl-js はデフォルトで対応していないだが、CSSがうまく読み込まれていないだけみたいなので、微調整でshadow DOMで実装できるかな?
@keichan34
Copy link
Member Author

https://codepen.io/keichan34/pen/ZEKqeEj?editors=1111

stylesheetをshadow DOM内に読み込めば行けそう

@kochizufan
Copy link

突然すみません、購読してるので流れてきましたので...

ご参考ですが、Maplatでは、使ってるcssを全部lessで読み込んで.maplatクラスの下に編成して、
Maplatを構成するdivにmaplatクラスを加えることで、外部から内部にも、内部から外部にもcssの影響を与えないようにしています。

https://github.com/code4history/Maplat/blob/master/less/ui.less

@keichan34
Copy link
Member Author

@kochizufan コメントありがとうございました!

実は現在クラスは全部一応プレフィックスされているが、エンベッド先のサイトに divdiv > :first-child などのクラスを指定しないCSSが読み込まれているの場合、レイアウトが崩れてしまいます。。

@ShinichiNishikawa
Copy link

ユーザーさんのこちらでも、同様の現象かな。

スクリーンショット 2021-09-14 23 45 07

@miya0001
Copy link
Member

これもしShadow DOMで対処するならたとえばWordPressのプラグイン内でやるとかにして、Embed API内での対処は避けたいです。
危惧しているのは万が一MapLibre側でこれに対する対処が入るなどのケースで、互換性とかの心配事が増えすぎるなと。

見ればすぐに分かることなので、とりあえず今はサポートとかドキュメンテーションとかで対処しましょう。
もしどうしても対処するならMapLibreにプルリクを送りましょう。

@keichan34
Copy link
Member Author

そうですね。embed API 内で shadow DOM で対応するにしても最初からデフォルトにする(わざわざCSSで内部までスタイリングしているケースがあると思いまして)想定でなく、少なくとも data-shadow-dom="on" 的なスイッチの裏で実装しようと思っていました。

WordPressのプラグインに入れるのはいいかもね。

@keichan34 keichan34 linked a pull request Jun 9, 2022 that will close this issue
3 tasks
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

Successfully merging a pull request may close this issue.

4 participants