Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用用户代理样式表_Javascript_Css_User Agent - Fatal编程技术网

Javascript 禁用用户代理样式表

Javascript 禁用用户代理样式表,javascript,css,user-agent,Javascript,Css,User Agent,是否可以在特定网页的Javascript或CSS中嵌入一些代码,以禁用(而不是加载)浏览器附带的用户代理样式表?我知道我可以通过CSS覆盖它,但这会创建许多被覆盖的规范,这似乎会在浏览页面时严重影响CPU的使用。特别是,我做了一些类似于*{margin:0;padding:0},这对于渲染来说似乎很昂贵(尤其是*选择器很昂贵)。因此,我不想严重重写用户代理样式表,而是在可能的情况下首先禁用它。这可能吗?如果是,怎么做?我特别喜欢使用Google Chrome,但如果可能的话,我希望使用跨浏览器的

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

使用“重置样式表”-这一个很好:

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

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


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

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

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

  • 使用XHTML标记,但不要在
    html
    标记中包含
    xmlns
    属性
  • 将文档作为application/xml提供
  • 对于应使用HTML语义处理的元素(例如,
    input
    创建输入框),请使用
    xmlns=”http://www.w3.org/1999/xhtml“
    元素或封闭元素上的属性
  • 这意味着在
    xmlns
    属性的影响之外,所有标记都被视为构成纯的、无意义的、无格式的(所有元素都是内联的)元素。不过,它们可以在样式表中设置样式


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

    这是不可能的,考虑到大多数网站都使用某种css重置,您对变通选项的担心有点奇怪。@Alex我在使用css覆盖生成的页面上几乎100%的CPU使用率
    *{margin:0;padding:0;}
    ,当我取消它时,性能显著提高。所以有一点不同。哇,假设它是一个大网站?@Alex它是一个静态页面,有几百个隐藏的
  • 项目,或者通过点击Javascript支持的按钮来显示。我确认Javascript部分没有占用太多的CPU。你是如何测试的?你确定这不仅仅是浏览器,因为Chrome会导致高CPU使用率,这取决于运行的是什么。我想你的建议使用xml正是我想要的。谢谢,正是我想要的。然而,我仍然对浏览器支持以及这个过程通常被称为什么感到好奇。