2009-11-11 67 views
4

最近我已经开始在IE8中测试我的web应用程序,但是,我注意到我的控件的位置现在遍布整个地方。当我使用IE7和Firefox 3.5测试我的应用时,这并不明显。我知道有一个建议 “修复” 这个问题由包括ASP.NET - IE8中控件位置的问题

元HTTP的当量= “X-UA兼容” 内容= “IE = EmulateIE7”

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

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

我正在用C#完全开发我的应用程序,因为我对CSS有很多不了解,但是如果这是解决此问题的途径,那么我对改变这一点毫无疑问。

谢谢。

编辑:我使用Visual Studio 2005 BTW

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

回答

3

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

这对于CSS开始一个很好的资源 - http://www.w3.org/Style/CSS/learning

CSS将允许您创建一个网站,对于大多数现代浏览器上运行。下面是一个匹配CSS版本和浏览器版本的好表格:http://www.quirksmode.org/css/contents.html

但是,有些浏览器(特别是IE6)尚未正确实施CSS指导。这导致需要针对IE6特定的CSS攻击远程复杂的任何事情。

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

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

+0

感谢资源链接,乔。尽管我正在开发一个Web应用程序,而不是一个网站,所以我更愿意保留大部分编码,关于应用程序在幕后的工作方式。 – Kronon 2009-11-11 10:56:43

+0

没问题。我不是在谈论编码,只是你将要投入CSS的样式。 如果你希望你的应用程序看起来非常专业,你需要掌握CSS ...... – 2009-11-11 11:40:05

3

说实话,还真的问题在于您的标记和CSS规则。 IE8更符合W3c CSS标准。所以你很可能遇到了你不知道的FireFox,Opera,Chrome和Safari的问题。非IE浏览器不会遵守您的IE7标签。

我的建议是让你的页面在新的浏览器中工作,让事情相对简单,这样你就可以在IE 6和IE 7中工作.IE 6真的需要消失,但是太多人不会升级。 IE 7也需要逐步淘汰。

我一直在写一个系列,我呼吁薄ASP.NET排序,重点在CSS布局的ASP.NET网站做的事情,http://professionalaspnet.com/archive/tags/Thin+ASP/default.aspx

+0

我明白了。我想我真的需要用CSS去弄脏手指,以更好地理解它是如何与我的代码一起工作来影响视觉效果的。非常感谢您的博客链接,克里斯。这一定会有所帮助。 – Kronon 2009-11-12 02:37:22

0

CSS可以是相当艰巨的,当你使用它首先开始,我个人喜欢使用CSS编辑器。我使用Skybound Stylizer(www.skybound.ca)。他们提供免费的基本版本,这是你需要开始甚至发布一个网站的全部内容,但是只需79美元就可以升级到他们的最终版本以显示我的支持,我仍然很喜欢它:)

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

希望这会有所帮助, David。

+0

感谢您的建议。 Visual Studio中的当前'设计器'视图实际上是用来显示控件的外观以及对源代码所做的任何开发。我会更详细地看看您提到的条件CSS注释,所以感谢您的帮助。 – Kronon 2009-11-12 02:40:24

+0

在这种情况下,这里有一些信息可以帮助您入门: 有条件的CSS属性: 仅在IE版本7及更低版本中显示:#margin:1px; 在IE版本6及更低版本中显示Onle:_margin:1px; 仅隐藏在IE版本6中:margin/** /:1px; 仅在IE 5.5版本中隐藏:ma \ rgin:1px; 仅在IE版本5中隐藏:margin/* * /:1px; 现在举一个例子: 假设你有一个ID为“stuff”的分隔符,并且你需要使它在IE中大2像素,但在其他任何东西中都没有。 由于样式表级联,您首先将常规属性: #stuff {width:5px; #width:7px的; } 希望这会有所帮助, David。 – David 2009-11-12 03:14:07