Javascript 使用较少的资源检测浏览器版本

Javascript 使用较少的资源检测浏览器版本,javascript,css,less,Javascript,Css,Less,大家好,使用less检测浏览器版本是可能的。例如,我不想在IE8浏览器上加载的代码较少,我发现我需要的防护似乎较少,但我的问题是如何从less检测浏览器,以便设置防护参数true或false ) 既然您已经为Javascript添加了标签,我将提供以下内容——不过请注意,这不是一种没有本地语言的方法 我不建议浏览器以这种方式定位,而不是使用条件注释来加载CSS或任何其他可能的替代方案……但是,如果您决定了,那么您可以: 使用JS: var b = document.documentElement

大家好,使用less检测浏览器版本是可能的。例如,我不想在IE8浏览器上加载的代码较少,我发现我需要的防护似乎较少,但我的问题是如何从less检测浏览器,以便设置防护参数true或false


)

既然您已经为Javascript添加了标签,我将提供以下内容——不过请注意,这不是一种没有本地语言的方法

我不建议浏览器以这种方式定位,而不是使用条件注释来加载CSS或任何其他可能的替代方案……但是,如果您决定了,那么您可以:

使用JS:

var b = document.documentElement;
        b.setAttribute('data-useragent',  navigator.userAgent);
        b.setAttribute('data-platform', navigator.platform );
        b.className += ((!!('ontouchstart' in window) || !!('onmsgesturechange' in window))?' touch':'');
将以下内容添加到html标记中:

允许您将LESS嵌套在中,例如,您需要关注规则,以下仅为示例

html:not([data-useragent*='IE/8']){
    // non IE8 styles
}

鉴于您已经标记了Javascript,我将提供以下内容——不过请注意,这并不是一种无本机的方法

我不建议浏览器以这种方式定位,而不是使用条件注释来加载CSS或任何其他可能的替代方案……但是,如果您决定了,那么您可以:

使用JS:

var b = document.documentElement;
        b.setAttribute('data-useragent',  navigator.userAgent);
        b.setAttribute('data-platform', navigator.platform );
        b.className += ((!!('ontouchstart' in window) || !!('onmsgesturechange' in window))?' touch':'');
将以下内容添加到html标记中:

允许您将LESS嵌套在中,例如,您需要关注规则,以下仅为示例

html:not([data-useragent*='IE/8']){
    // non IE8 styles
}

我一直倾向于使用条件注释在元素方法上添加类,以直接进行用户代理嗅探。条件注释只有Internet Explorer才能看到,其他浏览器会忽略,因此IE的指定版本是唯一获得类名的版本。对我来说,主要的好处是您不必依赖Javascript

它的工作原理有点像这样:

HTML:

在LESS/Sass中嵌套使得在这种情况下很容易对所有IE8覆盖样式进行分组。您可以在此处阅读有关此方法的更多信息:

下面是关于条件注释的一些更一般的信息:


我一直倾向于使用条件注释在元素方法上添加类,以直接进行用户代理嗅探。条件注释只有Internet Explorer才能看到,其他浏览器会忽略,因此IE的指定版本是唯一获得类名的版本。对我来说,主要的好处是您不必依赖Javascript

它的工作原理有点像这样:

HTML:

在LESS/Sass中嵌套使得在这种情况下很容易对所有IE8覆盖样式进行分组。您可以在此处阅读有关此方法的更多信息:

下面是关于条件注释的一些更一般的信息:


为什么不将它粘贴到HTML中条件注释中加载的文件中?使用条件注释不是更好吗?如果在部署之前将Less文件预编译为CSS,则根本不可能。浏览器中的动态编译并不是很受欢迎。为什么不把它放在HTML中条件注释中加载的文件中呢?使用条件注释不是更好吗?如果在部署之前将Less文件预编译为CSS,则根本不可能。在浏览器中进行动态编译的建议并不多。
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if gt IE 8]><!--><html><!--<![endif]-->
.ie8 {
    .selector {
        color: red;
    }
 }