Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery “我怎么能?”;重置";给定HTML元素的样式?_Jquery_Css_Stylesheet - Fatal编程技术网

Jquery “我怎么能?”;重置";给定HTML元素的样式?

Jquery “我怎么能?”;重置";给定HTML元素的样式?,jquery,css,stylesheet,Jquery,Css,Stylesheet,我正在开发一种可嵌入的javascript,它将HTML元素插入未知页面。我无法控制将要插入HTML的页面的样式表。问题是我插入的HTML会被页面错误地样式化,我想防止这种情况发生 确保插入的元素完全符合我的要求,最不冗长和/或资源密集的是什么?是否有一种简单的方法可以清除给定HTML元素和子元素的所有样式?例如,在firebug中,可以删除所有样式。我觉得必须,而且至少应该是一种将某些HTML元素从样式表规则中豁免的原生方法 例如: var myHTML = $("<div>my

我正在开发一种可嵌入的javascript,它将HTML元素插入未知页面。我无法控制将要插入HTML的页面的样式表。问题是我插入的HTML会被页面错误地样式化,我想防止这种情况发生

确保插入的元素完全符合我的要求,最不冗长和/或资源密集的是什么?是否有一种简单的方法可以清除给定HTML元素和子元素的所有样式?例如,在firebug中,可以删除所有样式。我觉得必须,而且至少应该是一种将某些HTML元素从样式表规则中豁免的原生方法

例如:

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>​