在 Razor 视图中 - 如何检测浏览器类型和版本以选择线性渐变类型



我正在尝试使用剃刀视图首次创建和启动一个网站(C# .Net MVC)。

我在网站上大量使用线性渐变,自启动以来,我意识到IE版本9及更低版本中不支持渐变

我想根据浏览器类型和版本选择渐变样式。

例如:

@if(browser is IE 9 and under){
style="background: #ffffff;
}
Else{
style="background:linear-gradient(to bottom, #ffffff 0%,#ffffff 100px,#b8dbff 100%);
}

如何在 Razor 视图中检测浏览器类型和版本?

过滤与线条渐变不兼容的浏览器版本的最简单方法是什么?

向前端开发人员致敬,我不知道这些跨浏览器问题就是这样一个问题。

当某些东西在浏览器中不起作用时,我自己经常抱怨

您可以使用 Razor 引擎根据调用者提供不同的视图,但听起来您的情况可以用 HTML/CSS 来处理。

如果IE9是您唯一的问题,则可以使用条件注释并包含额外的样式/样式表。

<!--[if IE 9]>
<style>
   #foo { background-color: #fff; }
</style>
<![endif]-->

但是对于您的特定问题,您应该能够做一些更简单的事情,只需修改样式表:

body{
    /* all browsers */
    background: red;
    /* newer browsers overwrite the previous value; old browsers ignore */
    background: linear-gradient( to left top, blue, red); 
}

IE9不知道"线性梯度"是什么意思,所以忽略了它。这是您可以依赖的定义行为。

演示:http://fiddle.jshell.net/K67yd/2/show/

你应该看看Modernizr,一个用于检测浏览器支持功能的javascript库。我想它会完成这项工作。

您可能会在这里找到一些内容:http://modernizr.com/docs/#features-css

还有一个很好的视频来理解这个概念:http://css-tricks.com/video-screencasts/126-using-modernizr/

最新更新