4

Is it possible to embed some code in Javascript or CSS for a particular webpage to disable (not load) the user agent style sheet that comes with the browser? I know that I can override it by CSS, but that creates lots of overriden specifications, and that seems to highly affect the CPU usage when browsing the page. Especially, I did something like *{margin:0; padding: 0}, which seems to be expensive for rendering (particularly the * selector is expensive). So, I do not want to heavily override the user agent style sheet but rather disable that in the first place if possible. Is this possible? If so, how? I am especially using Google Chrome, but would expect a cross browser way if possible.

4

4 回答 4

5

我想知道是否有办法直接在 JavaScript 中禁用用户代理样式表。似乎没有任何直接的方法,因为document.styleSheets不包含用户代理样式表。另一方面,Firefox Web Developer Extension 在 CSS 菜单中提供了一个禁用浏览器默认样式表的选项。

无论如何,有一种标记方式,虽然我不确定你是否喜欢它的含义。首先,它不适用于 IE 8 和更早版本(它们只会显示 XML 标记,而不是格式化的内容)。但是现代浏览器可以处理这个:

  1. 使用 XHTML 标记,但不要xmlns在标记中包含属性html
  2. 将文档作为应用程序/xml 提供。
  3. 对于应该使用其 HTML 语义处理的元素(例如,input创建一个输入框),请使用xmlns="http://www.w3.org/1999/xhtml"元素或封闭元素上的属性。

简单的演示

这意味着在xmlns属性的影响之外,所有标记都被视为构成纯粹的、无意义的、无格式的(所有元素都是内联的)元素。不过,它们可以在您的样式表中设置样式。

但是这样一来,您就不能既保留 HTML 蛋糕又吃掉它。也就是说,如果没有将用户代理样式表应用于它们,您将无法获得 HTML 功能(用于表单字段、链接等)。

于 2012-10-26T10:56:48.220 回答
2

使用“重置样式表” - 这个很好:http ://html5boilerplate.com/

于 2012-10-26T10:15:46.933 回答
0

您可以使用 reset css (http://www.cssreset.com/) 之类的东西来重置所有浏览器样式。

或者,我更喜欢使用规范化 css (http://necolas.github.com/normalize.css/) 来规范化 css 而无需重置所有样式,如 ul、li 等上的列表样式(reset.css 会这样做)

于 2012-10-26T10:19:43.100 回答
0

这是不可能的。只需创建一个由大多数人称为“reset.css”的 css 文件,其中包含用于覆盖用户代理样式的所有 css 代码

于 2012-10-26T10:16:22.070 回答