javascript - 禁用用户代理样式表

标签 javascript css user-agent

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

最佳答案

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

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

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

Simple demo .

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

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

关于javascript - 禁用用户代理样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084964/

相关文章:

javascript - 只在必要时断字

django - 如何检测 Django 中的浏览器类型?

html - 自动检测移动浏览器(通过用户代理?)

javascript - 无法让 MediaSource 在 chrome 中使用 mp4 格式

javascript - React App 中 API 的用户身份验证

html - Internet Explorer 和 CSS 转换关键帧上的比例值

python - 对 Selenium 使用随机 userAgent(python)

javascript - highstock.js 图表绘制有点偏差

javascript - 如何在 TinyMCE 中设置响应式文件管理器返回绝对 url

html - 将 <style> 规则应用于另一个元素