本篇主要介绍HTML5增加的语义元素中关于页面结构方面的,包含: <article>、<aside>、<figure>、<figcaption>、<footer>、<header>、<main>、<nav>、<section>等元素。

目录

1. 语义元素介绍

  1.1 何为语义元素

  1.2 特点

2. 原先界面布局

3. 页面结构语意元素

  3.1 说明

  3.2 详细介绍

  3.3 示例图

4. 旧版浏览器支持

  4.1 IE8以上

  4.2 IE8及IE8以下

1. 语义元素介绍

HTML5标准增加很多新的语意元素,若按种类来区分,有页面结构上的、文本内容上的、表单里的等等。

而这里主要介绍页面结构上的新元素。

1.1 何谓语意元素

简单来讲,语义元素就是为元素(标签)赋予某种意义,元素的名称就是元素要表达的意思。

如<header>表示页眉、<footer>表示页脚。

1.2 特点

①易于维护:使用语义元素将会有更清晰的页面结构信息,易于页面的后续维护。不需要再查看代码:找到div再找到具体的ClassName。

②无障碍性:有助于屏幕阅读器和其他辅助工具的读取。

③利于搜索引擎优化:搜索机器人在检查一些HTML5的语义元素后,可以收集其索引页面的信息。

2. 原先界面布局

在页面的布局中,<div>是一个非常多见的元素,配上一定的样式就可应用于特定场景,如页眉、侧边栏、导航栏等等。

为了方便维护,设计人员常给这些<div>赋值具有特殊名称的ClassName(样式类名)或ID。

例如一个表示页眉的<div>元素,其ClassName或ID可以为page-header、header等。

示例:

3. 页面结构语意元素

3.1 说明

页面结构的语意元素多用于页面的整体布局,大多数为块级元素,只是代替<div>使用,如:页眉、页脚等等。

而其自身没有特别的样式,还是需要搭配Css使用。

3.2 详细介绍

<header>:定义网页或文章的头部区域。可包含logo、导航、搜索条等内容。<详细资料>

  浏览器最低版本:IE 9、Chrome 5

使用说明:
①当用于标注网页的页眉时,可包含logo、导航、搜索条等信息。
②当用于标注内容的标题时,只有当标题还附带其他信息时才考虑用<header>,一般情况下用<h1>标注标题即可。

使用说明

<main> : 定义网页中的主体内容。<详细资料>

  浏览器最低版本:IE 不支持、Chrome 35

<footer>:定义网页或文章的尾部区域。可包含版权、备案等内容。<详细资料>

  浏览器最低版本:IE 9、Chrome 5

使用说明:
①作为网页的页脚时,通常包含网站版权、法律限制及链接等内容。
②作为文章的页脚时,通常包含作者相关信息。

使用说明

<nav>:标注页面导航链接。包含多个超链接的区域。<详细资料>

  浏览器最低版本:IE 9、Chrome 5

使用说明:
①一个页面可包含多个<nav>元素,如页面的导航和相关文章推荐等。
②<footer>区域里的联系信息、认证信息可不必包含在<nav>元素里。

使用说明

<section>:通常标注为网页中的一个独立区域。<详细资料>

  浏览器最低版本:IE 9、Chrome 5

使用说明:
①可作为网页中的独立区域,如文章中的一小节。

使用说明

<article>:完整、独立的内容块;里面可包含独立的<header>、<footer>等结构元素。如新闻、博客文章等独立的内容快(不包括评论或者作者简介)。<详细资料>

  浏览器最低版本:IE 9、Chrome 5

<aside>:定义周围主内容之外的内容块。如:注解。<详细资料>

  浏览器最低版本:IE 9、Chrome 5

<figure>:代表一段独立的内容, 经常与<figcaption>(表示标题)配合使用, 可用于文章中的图片、插图、表格、代码段等等。<详细资料>

  浏览器最低版本:IE 9、Chrome 8

<figcaption>:定义 <figure> 元素的标题。<详细资料>

  浏览器最低版本:IE 9、Chrome 8

3.3 示例图

4. 旧版浏览器支持

4.1 IE8以上

浏览器对不认识的元素会当做内联元素展示。而页面相关的语义元素都是块级元素,所以只需设置不支持这些元素的浏览器将它们显示为块级元素即可。

在样式中加入以下代码:

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

4.2 IE8及IE8以下

IE8及IE8以下的浏览器不支持对无法识别的元素应用样式。

所以要通过JS创建这些语义元素,并附加基本的样式。

4.2.1 以header为例

<script>
document.createElement('header');
</script>

4.2.2 应用外部文件

这些繁琐创建已经有雷锋写好了,只需在旧版的IE上加载就行。

<!–[if lt IE9]>
<script src="//cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
<![endif]–>

更多版本(包含min版):http://www.bootcdn.cn/html5shiv/

End
菜单加载中...

HTML5 语义元素(一)页面结构的更多相关文章

  1. HTML5 语义元素、迁移、样式指南和代码约定

    语义元素是拥有语义的元素. 什么是语义元素? 语义元素清楚地向浏览器和开发者描述其意义. 非语义元素的例子:<div> 和 <span> - 无法提供关于其内容的信息. 语义元 ...

  2. HTML5语义元素总结

    HTML5语义元素 语义=意义 语义元素=元素的意义   什么事语义元素? 一个语义元素能够清楚的描述其意义给浏览器和开发者. 无语义 元素实例:div.span.无需考虑内容. 语义 元素实例:fo ...

  3. HTML5: HTML5 语义元素

    ylbtech-HTML5: HTML5 语义元素 1.返回顶部 1. HTML5 语义元素 语义= 意义 语义元素 = 有意义的元素 什么是语义元素? 一个语义元素能够清楚的描述其意义给浏览器和开发 ...

  4. HTML5 语义元素(二)文本内容

    上一篇介绍的是关于页面结构方面的语义元素,本篇介绍文本内容方面,包含:<bdi>.<details>.<summary>.<mark>.<outp ...

  5. HTML5 语义元素

    返回目录 http://hovertree.com/h/bjaf/html5zixueji.htm 一个语义元素能够清楚的描述其意义给浏览器和开发者.无语义 元素实例: <div> 和 & ...

  6. HTML5语义元素

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 新的HTML5语义元素

    先看一个传统的HTML4的文档: <div class="header"> <h1>My Site Name</h1> <h2>My ...

  8. 添加shiv让所有现代浏览器都支持 HTML5 语义元素 html5.js让IE(包括IE6)支持HTML5元素方法

    引用Google的html5.js文件 <!--[if IE]> <script src=”http://html5shiv.googlecode.com/svn/trunk/htm ...

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

    1.语义元素 大多数HTML5语义元素的用途是标识页面中的一个内容区块,为标注的内容赋予额外的含义,不真正做任何事. 2.使用语义元素的原因 容易修改和维护: 无障碍性(现代Web设计的一个重要主题) ...

随机推荐

  1. 使用 antd Table组件, 异步获取数据

    使用React.js + Redux + antd 制作CMS 后台内容管理系统,分享一点点积累,欢迎讨论. 在this.state中初始化数据: this.state = { pageNum:1, ...

  2. [转]MySQL Explain详解

    在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有 ...

  3. Linux查看和改变网卡的一些信息

    昨天遇到一个问题,就是网卡的速率问题.本身是1000Mb,可是显示为10Mb,这个问题对于我这个菜鸟来说是个难以解决的问题.当然,第一件事是查询Linux中哪个命令能 改变网卡的速率. localho ...

  4. .NET Core 控制台应用程序使用异步(Async)Main方法

    C# 7.1 及以上的版本允许我们使用异步的Main方法. 一.新建一个控制台应用程序 二.异步Main方法 我们直接将Main方法改为如下: static async Task Main(strin ...

  5. 通过sort()方法实现升序和降序排列

    数组 升序:Arrays.sort(arr); 降序: 方法一:Arrays.sort(arr,Collections.reverseOrder()); 方法二: package com.yh.sor ...

  6. Loj 103、10043 (KMP统计子串个数)

    KMP算法学习链接:https://blog.csdn.net/starstar1992/article/details/54913261/ KMP算法:可以实现复杂度为O(m+n) 为何简化了时间复 ...

  7. Week5——团队选题&amp;需求分析

    Deadline: 2017-10-22 10:00PM,以博客发表日期为准. 评分基准: 按时交 - 有分(团队选题-5分,,团队贡献分-5分,需求分析-10分,原型设计-10分),检查的项目包括后 ...

  8. IPv4数据报格式

    网络层的分组为数据报,数据报为首部和数据两部分组成,如下图所示. 首部的长度是以4个字节为单位,长度可以是20-60字节,这跟首部的HLEN字段有关. 版本: 这个4位字段定义了IP协议的版本,目前主 ...

  9. iOS学习之第二个View使用UITabBarViewController

    前面有一篇博文iOS学习之Tab Bar的使用和视图切换 这是在AppDelegate里使用Tabbar,这样的程序打开就是TabbarView了,有时候我们需要给程序做一些帮助页面,或者登录页面,之 ...

  10. 客户端用JavaScript填充DropDownList控件 服务器端读不到值

    填充没有任何问题,但是在服务器端却取不出来下拉表中的内容.页面代码如下. <form id="form1" runat="server"> < ...