• HTML5的浏览器支持方案


    现代的浏览器基本都支持 HTML5,此外还有老浏览器。

    不管是旧的还是最新的,HTML5对无法识别的元素会作为内联元素自动处理。

    所以,在这里教大家怎么让浏览器去处理“未知”的HTML元素。

    甚至你可以教会 IE6 (Windows XP 2001) 浏览器处理未知的 HTML 元素。

    一、将HTML5元素定义为块元素

    HTML5 定了 8 个新的 HTML 语义(semantic) 元素。所有这些元素都是 块级 元素。

    为了能让旧版本的浏览器正确显示这些元素,你可以设置 CSS 的 display 属性值为 block;

    header, section, footer, aside, nav, main, article, figure {
        display: block; 
    }
    

    二、为HTML添加新元素

    你可以为 HTML 添加新的元素。
    下面的实例向 HTML 添加的新的元素,并为该元素定义样式,元素名为 myHero :

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
      <title>为 HTML 添加新元素</title>
      <script>document.createElement("myHero")</script>
      <style>
      myHero {
        display: block;
        background-color: #ddd;
        padding: 50px;
        font-size: 30px;
      } 
      </style> 
    </head>
    
    <body>
    
    <h1>我的第一个标题</h1>
    
    <p>我的第一个段落。</p>
    
    <myHero>我的第一个新元素</myHero>
    
    </body>
    </html>
    

    JavaScript 语句 document.createElement("myHero") 是为 IE 浏览器添加新的元素。

    Internet Explorer 8 及更早 IE 版本的浏览器不支持以上的方式。

    三、Internet Explorer 浏览器问题

    可以使用以上的方法来为 IE 浏览器添加 HTML5 元素,但是:

    Internet Explorer 8 及更早 IE 版本的浏览器不支持以上的方式。

    我们可以使用 Sjoerd Visscher 创建的 "HTML5 Enabling JavaScript", " shiv" 来解决该问题:

    <!--[if lt IE 9]>
      <script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
    <![endif]-->
    

    以上代码是一个注释,作用是在 IE 浏览器的版本小于 IE9 时将读取 html5.js 文件,并解析它。

    针对IE浏览器html5shiv 是比较好的解决方案。html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。

    四、完美的 Shiv 解决方案

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>渲染 HTML5</title>
      <!--[if lt IE 9]>
      <script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
      <![endif]-->
    </head>
    
    <body>
    
    <h1>我的第一篇文章</h1>
    
    <article>
    完美的 Shiv 解决方案
    </article>
    
    </body>
    </html>
    

    html5shiv.js 引用代码必须放在 元素中,因为 IE 浏览器在解析 HTML5 新元素时需要先加载该文件。

    参考链接:http://www.runoob.com/html/html5-browsers.html

    一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
    定义文档兼容性,让IE按指定的版本解析我们的页面

  • 相关阅读:
    cocos2dx的MotionStreak.cpp解析(-)
    gcc/g++基本命令简介
    C++编译器与链接器工作原理
    简单介绍 ARC 以及 ARC 实现的原理
    求两个链表表示的数的和
    对象内存结构中的 isa 指针是用来做什么的?
    按层遍历二叉树的节点
    一个 Objective-C 对象的内存结构是怎样的?
    创建一个可以被取消执行的 block
    TCP&UDP
  • 原文地址:https://www.cnblogs.com/damonzh/p/5661710.html
Copyright © 2020-2023  润新知