【问题标题】:how can I modify this code to make it work with IE 11?如何修改此代码以使其适用于 IE 11?
【发布时间】: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


【解决方案1】:

要解决眼前的问题:

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") or HttpContext.Current.Request.Browser.UserAgent.contains("Trident") Then
        LinkCSS.Href = "~/Estilos/estilos_IE.css"
    Else
        LinkCSS.Href = "~/Estilos/estilos.css"
    End If
End Sub

但是,我想说您应该花一些时间了解doctypes 是什么,不同的浏览器支持什么,并真正确定您首先需要进行浏览器检测的原因。对于您将要执行的 99% 的设计工作来说,这是不必要的,只会让事情变得不必要地复杂化。

在某些情况下,各种浏览器不支持 HTML5 的某些方面,但这些是更高级的项目,例如拖放。即使这样,您也可以在该特定功能不可用时为回退进行编码,而不是提供完全不同的样式表。

【讨论】:

  • 在我刚接触网络时重温旧问题。很抱歉(相当大的)延迟给你·“接受”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多