【发布时间】:2013-10-30 04:48:27
【问题描述】:
我是一名网页设计师,对 html 和 css 了解不多。
现在我正在家里开发一个新网络,这是一个使用响应式的大型项目。
我已经(当然)花了很多时间使它适用于 Ie8、ie9 并且至少在 1e7 上正常可见(ie10 已经足够好了)。
一个懂 Visual basic 的工作伙伴为我写了这个小代码:
Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
' Para seleccionar Las CSS que tiene que utilizar el navegador
If HttpContext.Current.Request.Browser.Browser.ToUpper = "IE" Then
LinkCSS.Href = "~/Estilos/estilos_IE.css"
Else
LinkCSS.Href = "~/Estilos/estilos.css"
End If
End Sub
连我自己都能理解。我只是为所有版本的 IE 使用不同的 css 表,而不是为其他浏览器使用普通版。
但是在升级到 windows 8.1 之后.. 我现在有 IE11 并且上面的代码不再起作用(它现在使用默认的 css 表)
问题是我今天需要工作好几个小时,因为明天早上我必须向我们的客户展示网络状态......在所有浏览器中,我正在尝试给我的伴侣打电话,但我无法联系到他(他已经失业了,不能抱怨)。
所以,我真的希望你们中的任何人都可以告诉我一种检测所有 ie(包括 ie11)的简单方法,以便我可以继续工作。我很绝望。
提前。
注意:不,我不能降级到 ie10(不允许)不能降级到 windows 8(除非格式化 PC 这不是一个选项)
【问题讨论】:
-
不要使用 Code behind 检测浏览器,在您的标记中使用条件语句,请参阅 question
-
如果你不想像 Liam 说的那样做,你可以使用
HttpContext.Current.Request.Browser.UserAgent.contains("Trident"),因为 IE11 用户代理是Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv 11.0) like Gecko -
@Liam IE9 是最后一个支持条件注释的浏览器,IE10 或更高版本不支持它们。找出 CSS 的实际问题会更好,而不是把它扫到地毯下。
-
你真的很想读这个:stackoverflow.com/a/18872067/2424 此外,我强烈建议你弄清楚为什么要从一开始就尝试检测不同的浏览器。从 IE8 开始,只要你有一个好的 doctype 集,你真正需要检测浏览器版本的情况非常少。
-
首先,停止尝试进行浏览器检测。 IE11 是符合标准的,所以如果你正在编写好的代码,与其他浏览器相比,你不需要为 IE11 做任何特别的事情。说实话,IE10 甚至 IE9 都不需要它。从那时起,就标准合规性而言,它一直是一款非常可靠的浏览器。 IE8 和更早版本,这更容易被原谅,但如果你的目标是 IE11 并且你正在做浏览器检测,那么你就做错了。
标签: html css vb.net internet-explorer-11