新的HTML5语义元素
先看一个传统的HTML4的文档:
<div class="header">
<h1>My Site Name</h1>
<h2>My Site Slogan</h2>
<div class="nav">
<ul><!-- Main Site Nav here --></ul>
</div>
</div>
<div class="sidebar">
<h3>Links Heading</h3>
<ul><!-- Sidebar links --></ul>
</div>
<div class="main">
<h4>Blog Post Title</h4>
<div class="meta">
Published by Joe on 01 May 2011 @ 12:30pm
</div>
<div class="post">
<!-- Actual blog post -->
</div>
</div>
<div class="footer">
<ul><!-- Footer links --></ul>
<!-- Copyright info -->
</div>
=======分割线=======
以上这段代码能很好的运行,但是有两个问题:
1) 使用旧的标准,就必须使用自定义命名的class来区分不同的区域。这是没有问题的,但是命名的方式是由作者决定的。比如有人用head来表示头部,有人喜欢用heading,再或者有人用main来表示主体,但有人喜欢用body或者article。
2) 有些人喜欢用id而不是class来命名区块。
总的来说,就是传统的做法是对搜索引擎或者其它第三方软件不友好的,没有一个固定的,值得信赖的做法来区分每个区域。这就是为什么我们要使用新的语义元素。就像下面这样:
<header>
<hgroup>
<h1>My Site Name</h1>
<h2>My Site Slogan</h2>
</hgroup>
<nav>
<ul><!-- Main Site Nav Here --></ul>
</nav>
</header>
<nav>
<h1>Links Heading</h1>
<ul><!-- Sidebar links --></ul>
</nav>
<section>
<article>
<header>
<h1>Blog Post Title</h1>
<div class="meta">
Published by Joe on
<time datetime="2012-05-01T12:30+00:00">
01 May 2012 @ 12:30pm
</time>
</div>
</header>
<section>
<!-- Actual blog post -->
</section>
</article>
</section>
<footer>
<ul><!-- Footer Links --></ul>
<!-- Copyright info -->
</footer>
=======分割线=======
1) <header> - 用于title和其它重要的细节(博客文章标题、永久链接、描述信息等)
2) <hgroup> - 标题的集合(<h1>到<h6>)
3) <nav> - 用于存放每个节点的链接。注意是重要节点的链接,例如主页链接或者表格目录等。
4) <section> - 用于定义一组内容,例如一个重要的表单或者一个主要的Wiki段落。Section能够拥有自己的header,navigation和footer。
5) <article> - 标记一个可以被重新发布的控件。例如RSS的内容、博客文章、评论等。Article也可以拥有自己的header,navigation和footer。
6) <time datetime="2012-05-01T12:30+00:00"> - 如果datetime属性被定义,则<time>的内容可以为任何值,但是如果没有定义datetime属性,则<time>内容必须是一个合法的日期或时间值。
7) <footer> - 通常放在页面或者section的底部,显示相关联的文章、链接或者版权声明等。
另外还有两个重要的元素是<aside>和<mark>。<aside>用于定义一个与主要内容无关的区域,例如一个广告或者浮动的窗体。<mark>用于定义一个应该被标注或者高亮的区域,例如符合搜索条件的内容。
通过新的语义元素,不仅仅页面显得更简单,同时搜索引擎和人工辅助技术也会更容易理解页面。
新的HTML5语义元素的更多相关文章
- HTML5 语义元素、迁移、样式指南和代码约定
语义元素是拥有语义的元素. 什么是语义元素? 语义元素清楚地向浏览器和开发者描述其意义. 非语义元素的例子:<div> 和 <span> - 无法提供关于其内容的信息. 语义元 ...
- HTML5语义元素总结
HTML5语义元素 语义=意义 语义元素=元素的意义 什么事语义元素? 一个语义元素能够清楚的描述其意义给浏览器和开发者. 无语义 元素实例:div.span.无需考虑内容. 语义 元素实例:fo ...
- HTML5: HTML5 语义元素
ylbtech-HTML5: HTML5 语义元素 1.返回顶部 1. HTML5 语义元素 语义= 意义 语义元素 = 有意义的元素 什么是语义元素? 一个语义元素能够清楚的描述其意义给浏览器和开发 ...
- HTML5 语义元素(一)页面结构
本篇主要介绍HTML5增加的语义元素中关于页面结构方面的,包含: <article>.<aside>.<figure>.<figcaption>.< ...
- HTML5 语义元素
返回目录 http://hovertree.com/h/bjaf/html5zixueji.htm 一个语义元素能够清楚的描述其意义给浏览器和开发者.无语义 元素实例: <div> 和 & ...
- HTML5 语义元素(二)文本内容
上一篇介绍的是关于页面结构方面的语义元素,本篇介绍文本内容方面,包含:<bdi>.<details>.<summary>.<mark>.<outp ...
- HTML5语义元素
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 添加shiv让所有现代浏览器都支持 HTML5 语义元素 html5.js让IE(包括IE6)支持HTML5元素方法
引用Google的html5.js文件 <!--[if IE]> <script src=”http://html5shiv.googlecode.com/svn/trunk/htm ...
- html5 新增元素以及css3新特性
HTML5 1.HTML5 新元素 HTML5提供了新的元素来创建更好的页面结构: 标签 描述 <article> 定义页面独立的内容区域. <aside> 定义页面的侧边栏内 ...
随机推荐
- IE下a标签会触发window.onbeforeunload的问题
今天同事发现一个问题,在我做的控件中,点击tab切换的时候,IE上会触发他页面上的onbeforeunload的事件.一开始以为是我控件上事件导致的,但是当我把所有的绑定事件取消以后,问题依然存在.我 ...
- redis-数据结构以及使用场景分析
目录 redis 常见数据结构以及使用场景分析 key String Hash List Set Sorted Set Bitmap和HyperLogLog Pub/Sub redis 常见数据结构以 ...
- Java使用Player播放mp3
大家平时闲了都会听听歌,散散心,于是很多人就问,在Java里边如何播放歌曲呢,唉,别说,在Java里边还真能歌曲,下面我为大家揭晓. 我们都知道Java里边做什么都需要对应的jar包,首先贴上mave ...
- 【洛谷2926/BZOJ1607】[USACO08DEC]Patting Heads拍头(筛法)
题目: 洛谷2926 (截止至本博客发表时,BZOJ1607题面有误,正确题面请到洛谷2926查看) 分析: = 一句话题意:给定\(n\)个数\(\{a_i\}\),求对于每个\(a_i\)有多少个 ...
- Spring IOC set注入
Hobby.java package com.wh.bean; public class Hobby { private Integer id; private String name; public ...
- 344 Reverse String 反转字符串
请编写一个函数,其功能是将输入的字符串反转过来.示例:输入:s = "hello"返回:"olleh"详见:https://leetcode.com/probl ...
- Hadoop Hive概念学习系列之hive的脚本执行(二十)
相当一部分人,容易忽略hive脚本,其实,这在生产环境里,是非常重要的! $ hive -e "show tables" $ hive -e "show tables & ...
- 未能加载文件或程序集Microsoft.SharePoint.Sandbox.dll
项目引用了MiscroSoft.SharePoint.dll程序集,编译后页面报错: 未能加载文件或程序集“Microsoft.Sharepoint.Sandbox, Version=14.0.0.0 ...
- 实现strcpy
#include <stddef.h> char* strcpy(char* dest, const char* src) { if (dest == NULL || src == NUL ...
- 将电脑浏览器User-Agent识别改成手机浏览器UA几种简单方法
第一种方法:修改浏览器的快捷方式 右击桌面上的Chrome浏览器图标,在弹出的右键菜单中选择“复制”,复制一个图标副本到桌面.右击该副本,选择“属性”,打开相应的对话框,在“目标”文本框的字符后面添加 ...