插入的DOM节点不受CSS影响
Make inserted DOM node not affected by CSS
我正在尝试开发一个Firefox插件/Chrome扩展。如何插入一个新的DOM节点到任意页面的任意位置,而不受其CSS的影响?
看一下这个演示:http://jsfiddle.net/za5cop0e/1/。如果网页以某种方式修改了某些节点下所有div的样式(以display: none
为例),并且我在不知道display
被修改的情况下插入了我的div,那么我的div将不会像我期望的那样运行。
我能想到的一个解决方案是用默认值覆盖所有标准的CSS样式,这是不可接受的。是否有更优雅的方式来做到这一点,例如,document.createElement('div', false)
,其中第二个参数指示浏览器,该节点不继承任何CSS样式从祖先
你可以把你自己的css嵌入到你要添加的DOM元素中。
对于DOM元素,你可以为这个DOM添加css它会覆盖任何其他的内联css
http://jsfiddle.net/za5cop0e/4/var s = document.createElement('style')
s.textContent = 'div { display: none }'; // problematic CSS
document.head.appendChild(s);
// expect to show a black block, but will not show due to the CSS style above
var d = document.createElement('div');
d.style.backgroundColor = 'black';
d.style.width = '100px';
d.style.height = '100px';
d.style.display = 'block'; // here
document.body.appendChild(d);
相关文章:
- Javascript em根据窗口/视口尺寸调整大小,不影响文档样式的text/css
- 影响JavaScript / CSS的HTML空间格式
- 使用 CSS 对鼠标悬停和鼠标退出没有过渡影响
- 当 Node.js 调用 HTML 时,外部 Javascript 和 CSS 不会对 HTML 产生影响
- 为什么包含警报模式会影响CSS的旋转方向
- CSS显示会影响jQuery/Javascript
- 是否有任何CSS属性对其元素没有影响
- CSS只影响容器中的元素
- 外部CSS影响(“出血”进入)具有聚合物的阴影DOM
- 影响 JavaScript 中的 CSS 元素
- 如何让导入的 css 字体/图标对影子 dom 中的元素产生影响
- 如何让 CSS 影响解释 CSS 后生成的 DOM 元素
- 为什么 JavaScript 执行会影响 Firefox 中的 css 动画和动画 gif
- 引导影响单选按钮行为的 css
- CSS放置元素而不会使用javascript动态地相互影响
- 影响 CSS 规则的 JavaScript/jQuery 函数
- 在不影响第一行的情况下,每隔一行缩进一个表.html/css/js/jQuery
- 如何保留页面'阻止CSS影响加载html文档的iframe
- 插入的DOM节点不受CSS影响
- 如何避免第三方CSS影响当前CSS