努力学习 HTML5 (4)—— 浏览器对语义元素的支持情况

经过上一节学习,我们已经建立一个结构良好的页面,如果在旧版的 IE 浏览器中浏览可能这些语义元素无法显示。

毕竟这些语义元素什么也不做,要支持它们,只要让浏览器把它们当做普通的 <div> 元素就行了。为此我们要做的就是为它们添加点样式规则。之后就可以得到超级可靠的语义元素了,即使使用10年前的浏览器也可以正常浏览。

为语义元素添加样式

浏览器遇到不认识的元素时,会把它们当做内联(inline)元素。大多数 HTML5 语义元素都是块级元素。

因此我们添加一条超级规则,为9个 HTML5 元素应用块级显示格式的规则:

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

让IE浏览器支持HTML5标准

对于较早版本的 IE 来说,上面的技术还存在问题,它们会拒绝给无法识别的元素添加样式。

好在,有一个变通方案,通过 JavaScript 创建元素,就可以骗过 IE,让它识别外来元素,例如下面的代码:

document.createElement(‘header‘);

实际上,已经有现成的脚本,来解决这个问题了,只需要浏览器处理页面其余部分之前运行。

为了避免不必要地加载 JavaScript 脚本,可以像下面这样把引用脚本放在 IE 条件注释中:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <!-- saved from url=(0014)about:internet -->
  <title>Apocalypse Now</title>
  <!-- Patch to make semantic elements work in IE8 and below. -->
  <!--[if lt IE 9]>
    <script src="html5shiv.js"></script>
  <![endif]-->
  <link rel="stylesheet" href="ApocalypsePage_Revised.css">
</head>

上面这段代码仅会在 IE 浏览器下运行,还有一点需要注意,在页面中调用 html5shiv.js 文件必须添加在页面的 <head> 元素内,因为 IE 浏览器必须在元素解析前知道这个元素,所以这个 js 文件不能在页面底部调用。

html5shiv.js 文件可以从 https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js 下载查看,你可以把html5shiv的js文件直接下载下来让后上传到自己的服务器单独调用。

可能GitHub打开速度有些慢,下面给出 html5shiv.js 的本地下载链接:  html5shiv.rar

时间: 2024-10-25 13:10:52

努力学习 HTML5 (4)—— 浏览器对语义元素的支持情况的相关文章

努力学习 HTML5 (1)&mdash;&mdash; 元素的增和删

HTML5 放松了某些规则,HTML5 的制定者想让这门语言更紧密地反映浏览器的现实. 放松的规则 不要求包含 <html>.<head> 和 <body> 元素. 不区分大小写. 允许省略关闭空元素,例如 <img>.<br> 或者 <hr>. 属性值可以不加引号,只有属性名没有属性值也可以. 如果能做到以下几点,就算是良好的 HTML5 风格了. 包含可选的<html>.<head> 和 <body&

努力学习 HTML5 (3)&mdash;&mdash; 改造传统的 HTML 页面

要了解和熟悉 HTML5 中的新的语义元素,最好的方式就是拿一经典的 HTML 文档作例子,然后把 HTML5 的一些新鲜营养充实进入.如下就是我们要改造的页面,该页面很简单,只包含一篇文章. ApocalypsePage_Original.html,这是一个格式非常规范的页面,所有的样式均来自于外部样式表. <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8

努力学习 HTML5 (1)&mdash;&mdash; 初体验

HTML5 代表未来:W3C ( World Wide Web Consortium, 万维网联盟) 已经放弃 XHTML,从而使 HTML5 成为正式标准并得到认可. 最简单的 HTML5 文档 <!doctype html> <title>A Tiny HTML Document</title> <p>Let's rock the browser, HTML5 style.</p> 只包含一行文本的超简单的 HTML5 文档,它在浏览器中效果

HTML5中新的语义元素

HTML5提供了新的语义元素来明确一个Web页面的不同部分: <header> <nav> <section> <article> <aside> <figcaption> <figure> <footer>

HTML5学习笔记(二):用于构建页面的语义元素

1.语义元素 大多数HTML5语义元素的用途是标识页面中的一个内容区块,为标注的内容赋予额外的含义,不真正做任何事. 2.使用语义元素的原因 容易修改和维护: 无障碍性(现代Web设计的一个重要主题): 对搜索引擎的友好性高: 适应未来的浏览器和Web设计工具的发展趋势 3.语义元素的来历 在发明HTML5之前,其发明者花很长时间研究已有的网页,还研读了谷歌对十几亿个网页的统计信息.谷歌公布的这个调查分析并列出了Web作者在自己网页中使用的类名,将Web页面中一些共性的东西(比如页面都有页眉.页

HTML5 语义元素

返回目录 http://hovertree.com/h/bjaf/html5zixueji.htm 一个语义元素能够清楚的描述其意义给浏览器和开发者.无语义 元素实例: <div> 和 <span> - 无需考虑内容.语义元素实例: <form>, <table>, and <img> - 清楚的定义了它的内容. <title>是一个典型的语义化标签,定义文档的标题.效果图: HTML5中新的语义元素许多现有网站都包含以下HTML代码

那是我在夕阳下的奔跑:边跑边学习html5之audio与video

今天为大家分享一下html5中的视频(video)与音频(audio).在进入主题之前我们先了解一下Flash与html5这两种技术的时代背景与发展历史. 1.前言 Flash被退休与html5的上位 Flash这项技术诞生于20多年前,曾被应用于98%的个人电脑上,是开发者最青睐的软件之一,被用于开发游戏.视频播放器和可在多个网络浏览器上运行的应用.Falsh的前半生可以说是辉煌的,在Flash最为鼎盛的时期,来自Adobe的官方统计,全球有将近200万的Flash开发者. 但它仅仅是满足了人

关于windows phone 8.1系统手机对html5触摸事件的支持情况

近日购入一部微软Lumia 640手机,目的主要就是为了测试年中开发完成的响应式移动web项目,同时也为了将来升级win10 mobile系统.由于我们的项目目前只考虑支持IOS与Android系统,所以只支持了html5触摸事件(如touchstart). 印象中WP系统应该只支持MS开头(如MSPointerDown)的指针事件,但测试结果很出人意料:项目在WP8.1的Lumia 640手机上竟完全可以正常运行,并支持了所有的触摸事件... 对于这个问题我挺不解的,于是就查阅了下msdn文档

HTML5学习:语义元素section

HTML5学习:语义元素section一.定义<section> 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中的其他部分. 二.用法section标签下一般有一个标题<h1></h1>.还有一个内容<p></p>.示例代码如下: <!DOCTYPE html> <html>   <head>     <meta name="content-type" con