是否可以在特定网页的 Javascript 或 CSS 中嵌入一些代码以禁用(不加载)浏览器附带的用户代理样式表?我知道我可以用 CSS 覆盖它,但这会创建很多覆盖规范,并且这似乎会极大地影响浏览页面时的 CPU 使用率。特别是,我做了类似 *{margin:0; 的事情。 padding: 0}
,这对于渲染来说似乎很昂贵(特别是 *
选择器很昂贵)。所以,我不想重写用户代理样式表,而是尽可能首先禁用它。这可能吗?如果是这样,如何?我特别使用谷歌浏览器,但如果可能的话,我希望使用跨浏览器方式。
最佳答案
我想知道是否有一种方法可以直接在 JavaScript 中禁用用户代理样式表。似乎没有任何直接的方法,因为 document.styleSheets
不包含用户代理样式表。另一方面,Firefox Web Developer Extension 在 CSS 菜单中有一个用于禁用浏览器默认样式表的选项。
无论如何,有一种标记方式,虽然我不确定你是否喜欢它的含义。首先,它不适用于 IE 8 和更早版本(它们只会显示 XML 标记,而不是格式化内容)。但是现代浏览器可以处理这个:
- 使用 XHTML 标记,但不要在
html
标记中包含xmlns
属性。 - 将文档作为 application/xml 提供。
- 对于应该用 HTML 语义处理的元素(例如,
input
创建一个输入框),使用xmlns="http://www.w3.org/1999/xhtml"
元素或封闭元素上的属性。
这意味着在 xmlns
属性的影响之外,所有标记都被视为构成纯粹的、无意义的、无格式的(所有元素都是内联的)元素。不过,它们可以在您的样式表中设置样式。
但是这样一来,您就不能既保留 HTML 蛋糕又吃掉它。也就是说,如果没有应用用户代理样式表,您将无法获得 HTML 功能(用于表单字段、链接等)。
关于javascript - 禁用用户代理样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084964/