【问题标题】:ASP.NET - Issues with position of controls in IE8ASP.NET - IE8 中的控件位置问题
【发布时间】:2010-12-15 09:36:17
【问题描述】:

最近我开始在 IE8 中测试我的 Web 应用程序,但是,我注意到我的控件的位置现在到处都是。当我使用 IE7 和 Firefox 3.5 测试我的应用程序时,这并不明显。我知道有一个建议的“修复”这个问题,包括

meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"

进入 HTML 源代码,但我认为如果我将应用更改为原生支持 IE8,而不是退回到兼容模式,可能会更好。

我所有的控件都是通过从正常流中偏移来定位的,但是我也注意到,即使它们定位在正常流中或绝对定位,问题仍然存在。

我完全用 C# 开发我的应用程序,因为我对 CSS 知之甚少,但如果这是解决此问题的途径,我毫不犹豫地改变它。

谢谢。

编辑:我正在使用 Visual Studio 2005 顺便说一句

编辑:在更多的论坛潜水之后,我找到了一个不错的博客条目@http://blogs.msdn.com/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx 的链接,其中列出了 IE8 标准视图、IE8 兼容性视图和 IE7 之间可能会破坏网站的一些快速差异。希望它可以帮助其他面临类似问题的人。

【问题讨论】:

    标签: c# asp.net internet-explorer-8


    【解决方案1】:

    如果您要构建网站,则必须使用 CSS。

    这是一个很好的 CSS 入门资源 - http://www.w3.org/Style/CSS/learning

    Css 将允许您创建适用于大多数现代浏览器的网站。这是一个匹配 CSS 版本和浏览器版本的好表:http://www.quirksmode.org/css/contents.html

    但是,有些浏览器(尤其是 IE6)没有正确实现 CSS 指导方针。这导致任何远程复杂的东西都需要 IE6 特定的 CSS hack。

    这是浏览器黑客的一个很好的策略点:

    http://articles.sitepoint.com/article/browser-specific-css-hacks#

    【讨论】:

    • 感谢资源链接,乔。不过,我正在开发一个 Web 应用程序,而不是一个网站,所以我更喜欢将大部分关于应用程序如何工作的编码保留在幕后。
    • 没问题。我不是在谈论编码,只是在谈论样式,您可以将其放入 CSS 中。如果您希望您的应用程序看起来很专业,您需要掌握 CSS...
    【解决方案2】:

    老实说,问题在于您的标记和 CSS 规则。 IE8 更符合 W3c CSS 标准。因此,您很可能遇到了您不知道的 FireFox、Opera、Chrome 和 Safari 问题。非 IE 浏览器不会支持您的 IE7 标签。

    我的建议是让您的页面在新的浏览器中工作,保持相对简单,这样您就可以在 IE 6 和 7 中工作。IE 6 确实需要离开,但可惜太多人不会升级。老实说,IE 7 也需要逐步淘汰。

    我一直在写一个我称之为 Thin ASP.NET 的系列,它专注于在 ASP.NET 网站的 CSS 布局中做事,http://professionalaspnet.com/archive/tags/Thin+ASP/default.aspx

    【讨论】:

    • 我明白了。我想我真的需要用 CSS 弄脏我的手指,以更好地理解它如何与我的代码一起工作以影响视觉效果。非常感谢您的博客链接,克里斯。肯定会有帮助的。
    【解决方案3】:

    当您第一次开始使用 CSS 时,它可能会让人望而生畏,我个人喜欢使用 CSS 编辑器。我使用 Skybound Stylizer (www.skybound.ca)。他们提供免费的基本版本,这确实是您开始甚至发布网站所需的全部内容,但我只需 79 美元就升级到他们的终极版以表示我的支持,我仍然喜欢它:)

    我建议检查一下。它将允许您进行更改并立即查看发生了什么,它还支持像在 IE 或 Firefox 中一样查看页面的能力,并提供额外的支持,以便轻松为单独的浏览器制作条件 CSS cmets。

    希望这会有所帮助, 大卫。

    【讨论】:

    • 感谢您的建议。 Visual Studio 中当前的“设计器”视图实际上可以显示控件在对源进行任何处理时的外观。不过,我会更多地研究您提到的条件 CSS cmets,因此感谢您的帮助。
    • 在这种情况下,这里有一些信息可以帮助您入门:条件 CSS 属性:仅在 IE 7 及更低版本中显示:#margin: 1px;在 IE 6 及更低版本中仅显示:_margin: 1px;仅在 IE 版本 6 中隐藏:margin /**/: 1px;仅在 IE 5.5 版本中隐藏:ma\rgin: 1px;仅在 IE 版本 5 中隐藏:margin/* */: 1px;现在举个例子:假设您有一个 ID 为“stuff”的分隔线,您需要在 IE 中使其大 2 像素,但在其他任何地方都不需要。由于样式表是级联的,因此您将 normal 属性放在首位:#stuff { width:5px; #宽度:7像素; } 希望这会有所帮助,大卫。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多