Jquery “我怎么能?”;重置";给定HTML元素的样式?
我正在开发一种可嵌入的javascript,它将HTML元素插入未知页面。我无法控制将要插入HTML的页面的样式表。问题是我插入的HTML会被页面错误地样式化,我想防止这种情况发生 确保插入的元素完全符合我的要求,最不冗长和/或资源密集的是什么?是否有一种简单的方法可以清除给定HTML元素和子元素的所有样式?例如,在firebug中,可以删除所有样式。我觉得必须,而且至少应该是一种将某些HTML元素从样式表规则中豁免的原生方法 例如:Jquery “我怎么能?”;重置";给定HTML元素的样式?,jquery,css,stylesheet,Jquery,Css,Stylesheet,我正在开发一种可嵌入的javascript,它将HTML元素插入未知页面。我无法控制将要插入HTML的页面的样式表。问题是我插入的HTML会被页面错误地样式化,我想防止这种情况发生 确保插入的元素完全符合我的要求,最不冗长和/或资源密集的是什么?是否有一种简单的方法可以清除给定HTML元素和子元素的所有样式?例如,在firebug中,可以删除所有样式。我觉得必须,而且至少应该是一种将某些HTML元素从样式表规则中豁免的原生方法 例如: var myHTML = $("<div>my
var myHTML = $("<div>my html in here</div>");
myHTML.resetAllStyles(); //<--- what would this function do?
myHTML.appendTo("body");
var myHTML=$(“此处为我的html”);
myHTML.resetAllStyles()// 不能阻止元素从父节点继承CSS样式。您所能做的就是覆盖所有继承的样式。我将把它作为一种可能性扔掉。您的bookmarklet的自定义标记如何?由于IE的原因,需要对自定义xml名称空间进行更多的修补,但可能对您是可行的
jQuery似乎也不介意
jQuery:
$('#tester').animate({opacity: .3},1000);
HTML:
//不是主HTML标记。它们作为根嵌入体内
//书签的一部分。吓人的?也许。
@媒体所有{
自定义标记\:某些元素{
宽度:100px;
高度:100px;
背景:蓝色;
显示:块;
}
自定义标记\:其他元素{
宽度:50px;
高度:50px;
背景:红色;
显示:块;
}
}
测试
测试
我使用此页面了解如何在IE中进行自定义标记:
编辑:
看起来IE希望在HTML标记中定义xmlns
,所以我将容器更改为
。总体上不确定后果,但似乎有效
我更新了示例和JSFIDLE。糟糕透了。谁是提出这个规范的目光短浅的白痴?@Sambo-有一些机制可以做到这一点,如果你想要一个框架,使用一个框架,一个
。他们非常聪明地创建了CSS。但是一些程序员必须知道,他们不能根据自己的需要重新发明一种编程语言:)@Sambo-为什么不呢?
不一定是另一个文档或URL。CSS完全按照它的名字来做,它级联:)@Sambo-也停下来想想,如果你应该这样做,是什么属性在干扰你?你不应该只设置这些,让用户/页面定义其余部分,使其符合整体主题吗?+1对于你开始的伟大讨论:)这是一个很棒的方法!我会尝试一下,不过我怀疑在跨浏览器兼容性方面我会受到伤害。在Chrome/Safari/Firefox中,您不必为所有时髦的XML名称空间标记而烦恼。您只需分配所需的任何标记即可。IE是问题所在,因此xml名称空间。在跨浏览器时似乎工作得很好。@Sambo-请务必让我知道结果如何。您将如何处理这样的输入标记?例如,如何命名输入标记的名称空间,使其行为类似于密码?
// Not the main HTML tags. These are embedded in the body as the root
// of the bookmarklet. Scary? Perhaps.
<html xmlns:customtag>
<style>
@media all {
customtag\:someElement {
width:100px;
height: 100px;
background: blue;
display: block;
}
customtag\:someOtherElement {
width: 50px;
height: 50px;
background: red;
display: block;
}
}
</style>
<customtag:someElement id='tester'>test</customtag:someElement>
<customtag:someOtherElement>test</customtag:someOtherElement>
</html>