javascript - 文档样式正在注入注入的弹出窗口
问题描述
首先,我在这里搜索了各种帖子,但没有任何效果。定义all: initial
或all: unset
什么都不做。我也尝试过 shadowDOM,但样式仍在其中。目前,我正在为我的样式使用情感,它在所有内容前面加上我的应用名称,以使所有内容都独一无二。在大多数网站上一切正常,但像 stackoverflow 这样的一些网站针对的body, html
字体大小似乎渗入了我注入的弹出窗口。
这是我的 inject.js 文件,我将元素注入到网站 DOM 中
import App from './App'
const ExtensionApp = styled.div`
font-size: 16px;
position: fixed;
right: 10px;
top: 15px;
width: 320px;
z-index: 2147483647;
`
const Index = () => {
return (
<ExtensionApp>
<App />
</ExtensionApp>
)
}
const rootElement = document.createElement('div')
rootElement.id = 'myApp-extension-root'
const root = document.body.appendChild(rootElement)
const stylesElement = document.createElement('div')
stylesElement.id = 'myApp-extension-styles'
const styles = document.body.appendChild(stylesElement)
const myCache = createCache({
key: 'myApp',
container: styles
})
ReactDOM.render(
<CacheProvider value={myCache}>
<Index/>
</CacheProvider>, root)
现在我尝试将这些样式放在根 id 上,myApp-extension-root
但仍然没有。我只是迷路了,我不明白如何解决这个问题。我找到的唯一解决方案是将它包装在 iframe 中,但我无法让 iframe 增长到它的内容,无论我做什么,它都会保持相同的宽度/高度。所以 iframe 对我来说是最后的手段。
编辑:
检查将跨度包装3rem
为字体大小的 div,计算出的大小为 39px
- 3rem !important .myApp-riwa84
100%html、body、div、span、applet、object、iframe、h1、h2、h3、h4、h5、h6、p、blockquote、pre、a、abbr、首字母缩略词、地址、大、引用、代码、del、 dfn, em, img, ins, kbd, q, s, samp, 小, 罢工, 强, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li,字段集,表单,标签,图例,表,标题,tbody,tfoot,thead,tr,th,td,文章,放在一边,画布,细节,嵌入,图,figcaption,页脚,标题,hgroup,菜单,导航,输出,红宝石, 部分, 摘要, 时间, 标记, 音频, 视频16px.myApp-1na1ypp13pxhtml,正文
在此跨度的样式下
字体大小:16px;- 位置:固定;
- 右:10px;
- 顶部:15px;
- 宽度:320 像素;
- z-index:2147483647;
字体系列:蒙特塞拉特,-apple-system,BlinkMacSystemFont,“Segoe UI”,Roboto,Oxygen-Sans,Ubuntu,Cantarell,“Helvetica Neue”,Helvetica,无衬线!重要;
跨度本身有
.myApp-riwa84 {
all: initial !important;
font-size: 3rem !important;
}
解决方案
推荐阅读
- java - 没有本地生成的身份值
- javascript - 为什么我在使用 Array concat 时不断收到 TypeScript 错误“没有重载匹配此调用”?
- microservices - 为什么大多数无状态微服务的图表在服务内部都有数据库,而有状态微服务有外部数据库?
- java - SpringBoot 找不到 IntelliJ
- java - IntelliJ - 方法引用可能会改变语义
- sql-server - 从 SQL Server 数据库生成 REST API
- javascript - 如何使用限制方法?电报机器人
- git - 如何将旧版本存储库中的 zip 文件中的代码与最新版本合并?
- pusher - Lighthouse Graphql 订阅身份验证返回 403(subscriberByChannel() 返回空)
- python - 谷歌 colab 中的 Pandas 分析错误