禁用用户代理样式表

saw*_*awa 4 javascript css user-agent

是否可以在特定网页的 Javascript 或 CSS 中嵌入一些代码来禁用(不加载)浏览器附带的用户代理样式表?我知道我可以通过 CSS 覆盖它,但这会创建大量覆盖规范,并且这似乎会严重影响浏览页面时的 CPU 使用率。特别是,我做了类似的事情*{margin:0; padding: 0},这对于渲染来说似乎很昂贵(特别是*选择器很昂贵)。因此,我不想大量覆盖用户代理样式表,而是如果可能的话首先禁用它。这可能吗?如果是这样,怎么办?我特别使用 Google Chrome,但如果可能的话,希望采用跨浏览器的方式。

Juk*_*ela 6

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

\n\n

无论如何,有一种标记方式,尽管我\xe2\x80\x99m 不确定你是否喜欢它的含义。首先,它不适用于 IE 8 及更早版本(它们\xe2\x80\x99ll 仅显示 XML 标记,而不是格式化内容)。但现代浏览器可以处理这个问题:

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

简单的演示

\n\n

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

\n\n

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

\n