我正在为我的网站寻找HTML5和CSS3模板以及许多jquery插件。假设我想使我的网站适应IE5,IE6等。Modernizr可能对实现我的目标很有用。我的问题是,是否每个IE5,IE6等不支持的每种样式都需要具有不同的样式。
在这种情况下,如果我得到了一个很棒的HTML5模板,我将进行大量工作以适应IE5,IE6等的每种样式。
你怎么看待这件事?如何避免写不同的风格?或者如果我错了,请告诉我。
提前致谢。
最佳答案
首先:
HTML5模板的DOCTYPE通常是html,而不是IE5或IE6期望的漂亮过渡或严格类型之一,因此您将必须解决此问题。
现代模板很可能会使用最新版本的JQuery,或者可能具有使用更高JQuery版本中的功能的其他库,并且这对您不起作用,因为从最新的JQuery库中删除了对这些浏览器的支持。
现代模板/ CSS中使用的选择器和样式很可能在IE5或IE6中不起作用,并且现代站点将使用的IE5中没有很多JavaScript函数。
IE5 / IE6上的最终呈现HTML(如果可以使网站正常工作)看起来不会与现代浏览器上看起来完全一样,并且尝试修复专门针对每种浏览器的所有样式可能会导致您遇到一些问题。
如果必须这样做:
从一个非常简单的几乎空白的占位符站点开始
尽早检测IE5和IE5并为其加载IE特定内容(JavaScript和CSS)
如果其中之一
提取所需的所有polyfill代码,以获取尽可能好的浏览器功能。
甚至不要试图使布局或样式不像IE5 / 6版本。仅具有这些浏览器的用户将始终无法查看/运行其他版本,因此无法进行比较。
否则,加载现代站点版本。
理想情况下,您希望使用路由/ URL重写将请求推送到一组IE5 / IE6页面,然后将其映射到服务器/ API后端。
这样您的网址就变成了
http://mysite/Page - Normal site
http://mysite/ie5/Page - IE5 version
最后,以这种方式完成工作的工作可能要少得多,然后尝试以大量复杂的标记处理每个浏览器版本。
将两者分开的优点之一是,当选择停止支持IE5时,您可以将这些映射单独重定向到升级页面,而以后在退出IE6时也可以这样做。这可能会将所有黑客,其他代码,不同的标记和UI错误仅包含在这些浏览器中,而不会影响您的主要开发。