Javascript 禁用用户代理样式表
是否可以在特定网页的Javascript或CSS中嵌入一些代码,以禁用(而不是加载)浏览器附带的用户代理样式表?我知道我可以通过CSS覆盖它,但这会创建许多被覆盖的规范,这似乎会在浏览页面时严重影响CPU的使用。特别是,我做了一些类似于Javascript 禁用用户代理样式表,javascript,css,user-agent,Javascript,Css,User Agent,是否可以在特定网页的Javascript或CSS中嵌入一些代码,以禁用(而不是加载)浏览器附带的用户代理样式表?我知道我可以通过CSS覆盖它,但这会创建许多被覆盖的规范,这似乎会在浏览页面时严重影响CPU的使用。特别是,我做了一些类似于*{margin:0;padding:0},这对于渲染来说似乎很昂贵(尤其是*选择器很昂贵)。因此,我不想严重重写用户代理样式表,而是在可能的情况下首先禁用它。这可能吗?如果是,怎么做?我特别喜欢使用Google Chrome,但如果可能的话,我希望使用跨浏览器的
*{margin:0;padding:0}
,这对于渲染来说似乎很昂贵(尤其是*
选择器很昂贵)。因此,我不想严重重写用户代理样式表,而是在可能的情况下首先禁用它。这可能吗?如果是,怎么做?我特别喜欢使用Google Chrome,但如果可能的话,我希望使用跨浏览器的方式。使用“重置样式表”-这一个很好:这是不可能的。只需创建一个被大多数人调用的css文件“reset.css”,其中包含用于覆盖用户代理样式的所有css代码您可以使用类似reset css的东西(http://www.cssreset.com/)要重置所有浏览器样式
或者,我更喜欢使用规范化css(http://necolas.github.com/normalize.css/)这在不重置所有样式(如ul、li等上的列表样式)的情况下规范了css(reset.css会这样做)我想知道是否有一种方法可以直接在JavaScript中禁用用户代理样式表。似乎没有任何直接的方法,因为
document.styleSheets
不包含用户代理样式表。另一方面,FirefoxWebDeveloper扩展在CSS菜单中有一个选项用于禁用浏览器默认样式表
无论如何,有一种标记方式,尽管我不确定您是否喜欢它的含义。首先,它不适用于IE8和更早版本(它们只显示XML标记,而不是格式化的内容)。但现代浏览器可以处理这一问题:
html
标记中包含xmlns
属性input
创建输入框),请使用xmlns=”http://www.w3.org/1999/xhtml“
元素或封闭元素上的属性xmlns
属性的影响之外,所有标记都被视为构成纯的、无意义的、无格式的(所有元素都是内联的)元素。不过,它们可以在样式表中设置样式
但是这样,你不能既保留HTML蛋糕又吃掉它。也就是说,您无法获得HTML功能(用于表单字段、链接等)没有对它们应用用户代理样式表。这是不可能的,考虑到大多数网站都使用某种css重置,您对变通选项的担心有点奇怪。@Alex我在使用css覆盖生成的页面上几乎100%的CPU使用率
*{margin:0;padding:0;}
,当我取消它时,性能显著提高。所以有一点不同。哇,假设它是一个大网站?@Alex它是一个静态页面,有几百个隐藏的