C# ASP.NET-IE8中控件的位置问题

C# ASP.NET-IE8中控件的位置问题,c#,asp.net,internet-explorer-8,C#,Asp.net,Internet Explorer 8,最近,我开始在IE8中测试我的web应用程序,然而,我注意到我的控件的位置现在到处都是。这在我用IE7和Firefox 3.5测试我的应用程序时并不明显。我知道对于这个问题有一个建议的“修复”,包括 meta http equiv=“X-UA-Compatible”content=“IE=EmulateIE7” 进入HTML源代码,但我认为如果我将我的应用程序更改为本机支持IE8,而不是退回到兼容模式,可能会更好 我所有的控件都是通过偏移正常流来定位的,但我也注意到,即使它们位于正常流或绝对位置

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

meta http equiv=“X-UA-Compatible”content=“IE=EmulateIE7”

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

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

我完全是用C语言开发我的应用程序的,因为我对CSS几乎一无所知,但如果这是解决这个问题的途径,我会毫不犹豫地改变它

谢谢

编辑:顺便说一句,我正在使用VisualStudio2005


编辑:在更多的论坛潜水之后,我找到了一个链接,指向一个不错的博客条目@,其中列出了IE8标准视图、IE8兼容性视图和IE7之间的一些快速差异,这些差异可能会破坏网站。希望它能帮助其他面临类似问题的人。

如果你要建立一个网站,你必须使用CSS

这是一个从CSS开始的好资源-

Css将允许您创建一个适用于大多数现代浏览器的网站。下面是一个很好的表格,用于匹配CSS版本和浏览器版本:

然而,有些浏览器——特别是IE6——没有正确实现CSS指南。这就需要对任何远程复杂的东西进行IE6特定的CSS攻击

对于浏览器黑客来说,这是一个很好的分层点:


老实说,问题实际上在于您的标记和CSS规则。IE8更符合W3CCSS标准。所以你很可能在FireFox、Opera、Chrome和Safari上遇到了一些你不知道的问题。非IE浏览器不会尊重您的IE7标签

我的建议是让你的页面在新的浏览器中工作,保持相对简单,这样你就可以在IE6和IE7中工作。IE6真的需要离开了,但遗憾的是太多人不愿升级。IE 7也需要逐步淘汰


我一直在写一个系列文章,我称之为Thin ASP.NET,该系列着重于在ASP.NET站点的CSS布局中做一些事情,

CSS在您刚开始使用它时可能会让人望而生畏,我个人喜欢使用CSS编辑器。我使用Skybound样式器(www.skybind.ca)。他们提供一个免费的基本版本,这确实是你开始甚至发布网站所需要的一切,但只需79美元,我就升级到了他们的最终版本,以表示我的支持,我仍然喜欢它:)

我建议你去看看。它将允许您进行更改并立即看到发生了什么,它还支持查看页面的功能,就像您在IE或Firefox中一样,并提供额外的支持,使您可以轻松地为不同的浏览器创建条件CSS注释

希望这有帮助,
大卫。

乔,谢谢你的资源链接。不过我正在开发一个web应用程序,而不是一个网站,所以我更喜欢把大部分关于应用程序如何工作的编码放在幕后。没问题。我说的不是编码,只是样式,你可以把它放到CSS中。如果你想让你的应用程序看起来更专业,你需要掌握CSS…我明白了。我想我真的需要用CSS来弄脏我的手指,以便更好地理解它是如何与我的代码一起影响视觉效果的。非常感谢你的博客链接,克里斯。这肯定会有帮助的。谢谢你的建议。VisualStudio中当前的“Designer”视图实际上用于显示控件在对源代码进行任何更改时的外观。不过,我会更深入地了解您提到的条件CSS注释,因此感谢您的帮助。在这种情况下,这里有一些信息可以帮助您入门:条件CSS属性:仅在IE版本7及更低版本中显示:#边距:1px;仅在IE版本6及更低版本中显示:_边距:1px;仅在IE版本6中隐藏:边距/***/:1px;仅在IE版本5.5中隐藏:ma\rgin:1px;仅在IE版本5中隐藏:边距/***/:1px;现在举个例子:假设你有一个ID为“stuff”的除法器,你需要在IE中把它放大2像素,但在其他任何地方都不需要。由于样式表层叠,您将normal属性放在第一位:#stuff{width:5px;#width:7px;}希望这有帮助,David。