低版本IE正常运行HTML5+CSS3网站的3种解决方案

 更新时间:2014年03月04日 10:51:18   作者:  
现在我们可以选择浏览器非常多,所以浏览器的环境也是种类繁多,同一个浏览器也是包含各种不同的版本,不同的版本之间的渲染方法也存在差异,它们支持的 HTML5、CSS3 特性恐怕也不尽相同。这种情况于是造成Web开发者在开发网站时,要面对数量庞大的浏览器种类

如果开发时按最低标准,比如IE6不支持的特性,我们统统不用,那就没有必要写这篇文章了;但我想这种情况极少,更多的开发,是在现代浏览器上使用它们支持的特性,而在早期浏览器上做一定的降级处理,这就是所谓 “渐进增强”,也是本文要说的重点。通过下面的方法,希望可以让网站也能够在低版本IE浏览器上奇迹般地运行得更好!
htmlshiv.js
Remy的 HTML5shiv通过JavaScript 来创建HTML5元素(如 main, header, footer等)。在某种程度上通过JavaScript 创建的元素是 styleable(可样式)的。我们可以花很多时间来思考其运行原理,但谁会在乎呢?这种策略在所有产品网站上仍然是必须使用的。

复制代码 代码如下:
<!--[if lt IE 9]><script src="http://cdn.bootcss.com/html5shiv/3.7/html5shiv.js"></script><![endif]-->
selectivizr.js
Selectivizr.js 是一个不可思议的资源,用于填充不支持的CSS选择器和属性,包括重要的 last-child。在最近的重设计中,我嵌入了 selectivizr,并在更老的 IE 浏览器上也不会错过任何细节。下面是我的实现代码:
复制代码 代码如下:
<!--[if lte IE 8]><script src="http://cdn.bootcss.com/selectivizr/1.0.2/selectivizr.js"></script><![endif]-->

现代项目绝对必须的。只在老版本IE时才加载。
另外,Modernizr 脚本中已经添加 HTML5 浏览器支持脚本 html5shiv,我们只要引用 Moernizr.js 文件,IE9 以下的 IE 浏览器就支持 HTML5 添加的语义标签如 nav、section、article 等,也可以使用 CSS 对它们进行样式化。
条件注释
下面这样最土的情况你肯定看到过。但无论丑陋与否,事实上这段代码完全按预期的方式运行:
复制代码 代码如下:
<!DOCTYPE html>
<!--[if lt IE 7 ]> <html class="ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8" lang="en"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9" lang="en"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en"> <!--<![endif]-->

上面的方法是作用于css,来写一些针对IE各版本的样式差异。先判断用户用的哪个IE版本,然后在标签上加上该版本的class,这样可以方便hack。

然后我们在css文件中就可以这样写:

复制代码 代码如下:

.ie6 xxx {};
.ie7 xxx {};

这是目前小编认为效率最高的方法,这个方法不需要或等待JavaScript,而且也不需要重量级的JavaScript库。你定义的styles类立即生效,还没有闪屏。

尽管IE浏览器正在迎头赶上竞争对手,新版本IE也有非常大的变化,并希望借助全新的IE重塑网络体验。但在国内旧版IE仍然是比较流行。好消息是,这些资源在所有现代浏览器上运行良好,代价也并不高!

相关文章

  • CSS锦囊

    CSS锦囊

    CSS锦囊...
    2007-02-02
  • CSS计数器-自动化文档中的自动编号

    CSS计数器-自动化文档中的自动编号

    CSS计数器是一个强大但经常被忽视的工具,它们允许开发者创建和管理计数器,这些计数器可以在文档中自动递增,非常适合用于编号章节、列表项或其他文档元素,它们具有强大的浏览器支持
    2025-02-02
  • CSS图片拼合生成器只需上传zip包即可

    CSS图片拼合生成器只需上传zip包即可

    CSS图片拼合生成器只需上传zip包即可...
    2007-12-12
  • padding、border会把div撑大的解决方法

    padding、border会把div撑大的解决方法

    所有HTML元素都可以看作盒子,CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容,盒模型允许我们在其它元素和周围元素边框之间的空间放置元素,因为Div添加了padding、border,Div的实际宽度=Div的初始固定值+边距值+边框值
    2023-09-09
  • CSS核心概念解析:层叠、优先级与继承

    CSS核心概念解析:层叠、优先级与继承

    在Web开发中,CSS负责美化HTML文档,掌握层叠、优先级和继承是理解和应用CSS的关键,层叠规则解决样式冲突,优先级决定多重样式的应用,而继承则让元素共享某些样式属性,理解这些概念有助于开发者有效管理和优化网页的视觉表现
    2024-09-09
  • Css利用js的expression实现的效果

    Css利用js的expression实现的效果

    Css利用js的expression实现的效果...
    2007-02-02
  • (X)HTML Strict 下的嵌套规则

    (X)HTML Strict 下的嵌套规则

    下面是一份在 HTML 4 Strict 和 XHTML 1.0 Strict 下必须遵守的标签嵌套规则,比如你不能在 <a> 里面再嵌入一个 <a> 这样的约定。
    2008-04-04
  • css为图片设置背景图片

    css为图片设置背景图片

    为图片设置背景图片,是一个非常搞的实例。这句话或许就感觉有点好玩。我们为以IMG标签引入页面的图片设置背景图片。
    2008-09-09
  • CSS中常用的单位

    CSS中常用的单位

    CSS中常用的单位...
    2007-01-01
  • firefox css自动换行的实现方法

    firefox css自动换行的实现方法

    越发感觉网页设计人员的辛苦,就一个自动换行,
    2008-08-08

最新评论