我正在做一个翻译单词的浏览器扩展,需要在任意网站上注入一个翻译窗口,要防止当前网站的 CSS 影响翻译窗口的外观,所以提出这个问题。
还有两个方案,都不理想
1 插入一个 iframe,不会受到当前网站 CSS 的影响
2 插入 一个自定义元素 <foo></foo>
我正在做一个翻译单词的浏览器扩展,需要在任意网站上注入一个翻译窗口,要防止当前网站的 CSS 影响翻译窗口的外观,所以提出这个问题。
还有两个方案,都不理想
1 插入一个 iframe,不会受到当前网站 CSS 的影响
2 插入 一个自定义元素 <foo></foo>
1
fe619742721 May 29, 2018 important 不行么
|
2
xiaody May 29, 2018 iframe 和自定义元素哪里不理想?
CSS 方案可以试试 https://www.w3.org/TR/css-cascade-3/#all-shorthand |
3
yushiro May 29, 2018 via iPhone
内联样式的优先级最高,自己先覆盖一遍呗
|
4
cccer May 29, 2018 |
6
banricho May 29, 2018
把元素插到 </html> 后面,虽然不符合规范,但是浏览器基本都能识别 |
9
doubleflower May 29, 2018 以前扫了一遍 web components 相关时记得好象有这么个技术,好象叫 Shadow DOM,chrome 原生支持的
|
10
leega0 May 29, 2018 楼上给了你答案
|
12
milklee May 29, 2018 之前我也为这个问题纠结了很久,还为此写过一篇文章 https://github.com/lmk123/blog/issues/32
我尝试过挨个重置 css 样式、Shadow DOM、全自定义元素、iframe 这四种方式,最后还是觉得 all 最好。 |
14
banricho May 29, 2018
|
19
wwjvtwoex OP 我没仔细考虑,对注入的元素,“阻止冒泡” 确实可以解决。
|
20
mg122 May 29, 2018 z-index 层和透明度
|
21
chenyu8674 May 29, 2018 用 canvas 画一个 [doge]
|
22
gxm44 May 29, 2018 shadow dom
|
23
codehz May 29, 2018
把源站放 iframe 里(
|