是否可以在特定网页的Javascript或CSS中嵌入一些代码来禁用(不加载)浏览器附带的用户代理样式表?我知道我可以通过CSS覆盖它,但这会产生大量的覆盖规范,这似乎会在浏览页面时极大地影响CPU使用率。特别是,我做了类似*{margin:0; padding: 0}
的事情,这对于渲染来说似乎很昂贵(特别是*
选择器很昂贵)。因此,我不想大量覆盖用户代理样式表,而是在可能的情况下首先禁用它。这可能吗?如果是这样,怎么样?我特别使用谷歌浏览器,但如果可能的话,我会期望采用跨浏览器方式。
答案 0 :(得分:3)
我想知道是否有一种方法可以直接在JavaScript中禁用用户代理样式表。似乎没有任何直接的方法,因为document.styleSheets
不包含用户代理样式表。另一方面,Firefox Web Developer Extension在CSS菜单中有一个用于禁用浏览器默认样式表的选项。
无论如何,有一种加价方式,虽然我不确定你是否喜欢它的含义。首先,它不适用于IE 8及更早版本(它们只显示XML标记,而不是格式化内容)。但现代浏览器可以解决这个问题:
xmlns
标记中包含html
属性。input
创建一个输入框),请在元素或封闭元素上使用xmlns="http://www.w3.org/1999/xhtml"
属性。这意味着在xmlns
属性的影响之外,所有标记都被视为构成纯粹的,无意义的,无格式的(所有元素都是内联的)元素。但是,它们可以在样式表中设置样式。
但是这样,你不能同时保留HTML蛋糕并吃它。也就是说,如果没有将用户代理样式表应用于它们,则无法获得HTML功能(对于表单字段,链接等)。
答案 1 :(得分:2)
使用“重置样式表” - 这个很好:http://html5boilerplate.com/
答案 2 :(得分:0)
这是不可能的。只需创建一个由大多数人调用的css文件" reset.css'其中包括用于覆盖用户代理的样式的所有css代码
答案 3 :(得分:0)
您可以使用reset css(http://www.cssreset.com/)之类的东西来重置所有浏览器样式..
或者,我更喜欢,使用normalize css(http://necolas.github.com/normalize.css/)规范化css而不重置ul,li等列表样式的所有样式。(reset.css would那样做)