这是补充HTML5基础知识的系列内容,其他为:

周日继续读《HTML5开发手册》,并进行Demo练习,今天主要学习四个HTML5新增的元素:figure、time、details、mark。

不学不知道,原来这些平时不注意的元素都有着很大的功能。好了,下面开始吧。

一、figure、figcaption

在HTML5之前,插入图片时会通过另外的div来包裹图片备注,这样做的缺点在于图片和图注之间没有任何关联。

在HTML5中,可以用figure元素插入某张图片,用figcaption来添加图片备注。

figure通常用来插入图片,但也可以是一段代码、图表、音频或者视频。通常情况下主要用于图片。

<figure>
<img src="" alt="">
<figcaption>
图片标题
</figcaption>
</figure>

建议无论如何在哪种情况下,都要为图片添加alt属性。

figure元素不仅仅可以包含一张图片,还可以包含多张图片:

<figure>
<img src="" alt="" />
<img src="" alt="" />
<img src="" alt="" />
<figcaption>
图片描述
</figcaption>
</figure>

如果单纯的显示图片,使用普通的img标签即可,如果包含了额外信息,那么就应该使用figure和figcaption。

需要注意的是,figure只能包含一个figcaption。

下面练习一下,我们可以实现最常见的广告布局:

<article>
<section>
<h1>More from the Web</h1>
<figure>
<img src="test1.jpg" alt="">
<figcaption>You're Killing Your iPhone With These 7 Charging Mistakes</figcaption>
</figure>
<figure>
<img src="test2.jpg" alt="">
<figcaption>What Was Found After Beats Headphones Were Taken Apart</figcaption>
</figure>
<figure>
<img src="test3.jpg" alt="">
<figcaption>Why You Should Wrap Your Keys In Aluminum Foil</figcaption>
</figure>
<figure>
<img src="test4.jpg" alt="">
<figcaption>The Folding Gun That Looks Like a Smartphone is Worrying Police</figcaption>
</figure>
</section>
</article>

二、time元素插入日期和时间

使用time元素,能够插入计算机能够识别的时间和日期,同时又能以可读的方式显示给用户。利用该元素可以给内容添加如发布时间、事件发生时间等信息。

<time>2017-01-08 10:08</time>

time有两个属性:

  • datetime:计算机识别的时间为datetime属性,用户看到的时间是time标签中的内容
  • pubdate:布尔值,代表最近的父article元素内容的发布时间,如果没有任何的父article元素,则指向整个文档,每个article只能有一个带pubdate属性的time元素。

下面是一个具体的示例:

<article>
<footer>
<p>这篇文章发表自<time pubdate datetime="2012-12-24T16:00">2016年12月24日,下午4点。</time><p>
</footer>
</article>

需要注意的是:datetime属性时间格式必须是公历格式:YYYY-MM-DD,然后加上时间格式:T00:00,24小时制。

综合示例

下面利用上面两个HTML5标签,我们可以优化如下排版(该组件是模仿element的卡片组件):

下面是布局:

<section class="card card--offset">
<figure>
<img class="card__image" src="test.png" alt="好吃的汉堡">
<figcaption class="card__caption">好吃的汉堡</figcaption>
</figure>
<footer class="card__footer">
<p>
<time datetime="2017-01-08T10:08" class="card__time">2017-01-08 10:08</time>
<a href="#" class="card__operation">操作按钮</a>
</p>
</footer>
</section>

我的卡片应用场景是:以图片为主,一个卡片主要用来介绍一组图片,像时间、操作是属于footer的内容,但标题不能算,标题是用来解释图片的,并不是footer的内容,尽管样式上看起来像上下结构。

三、details 创建可伸缩控件

details是个神奇的元素,在无需任何css、js的情况下,创建展开/收缩的开关效果。利用summary标签还可以创建内容的概述信息。

details有一个属性,open,表示默认是打开的。反之默认是关闭的样式。

summary是个可点击的部分,用来控制收缩或展开。

<details open>
<summary>查看详细信息</summary>
<figure>
<img src="xx" alt="xx">
<figcaption>生活照片</figcaption>
</figure>
</details>

details的应用场景就更加多了,比如mac下的查看文件属性布局,接下来会通过details实现更有意思的效果。

四、mark 元素高亮文本

利用mark元素,文档作者可以高亮当前文档的某些文本,以达到醒目的效果。

比如:搜索页面对搜索够关键字进行高亮显示。不选用strong或者em强调这些关键字,仅仅是为用户提供高亮而已。

![屏幕快照 2017-01-08 11.54.17](http://7mj4a6.com1.z0.glb.clouddn.com/2017-01-08-屏幕快照 2017-01-08 11.54.17.png)

五、总结

到目前为止,我们完全可以使用这些新的标签来布局我们的页面,更加语义化更加结构清晰。作为一名前端开发人员更应该将这些最基础的东西熟记下来,撸起袖子继续努力,开发出未来的web应用程序。

六、书籍信息

《HTML5开发手册》

HTML5 Developer's Cookbook

作者:[美]Chuck Hudson [英]Tom Leadbetter

译者:廖望

出版社:人民邮电出版社

读书笔记:《HTML5开发手册》--figure、time、details、mark的更多相关文章

  1. 2017年最重要的HTML5开发手册,传播正能量

    今天给大家推荐这个HTML5开发手册,希望能帮助正在学习web前端的人,鄙人也是刚学习前端没多久,借助于一点资讯平台能够结识更多前端大牛,这是我的HTML5进阶学习一点资讯群:250777811,里面 ...

  2. 2018年最重要的HTML5开发手册,传播正能量

    今天给大家推荐这个HTML5开发手册,希望能帮助正在学习web前端的人,鄙人也是刚学习前端没多久,借助于一点资讯平台能够结识更多前端大牛,这是我的web前端/HTML5/javscript技术学习群: ...

  3. 读书笔记:《HTML5开发手册》--HTML5新的结构元素

    读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在 ...

  4. 读书笔记:《HTML5开发手册》--现有元素的变化

    读书笔记:<HTML5开发手册>-- 现存元素的变化 继续学习HTML5语义化的内容,今天主要介绍一下,HTML5之前的元素经HTML5规范后的语义及一些使用示例. 一.cite HTML ...

  5. 读书笔记:《HTML5开发手册》Web表单

    这是补充HTML5基础知识的第五篇内容,其他为: 一.HTML5-- 新的结构元素 二.HTML5-- figure.time.details.mark 三.HTML5-- details活学活用 四 ...

  6. 读书笔记:《HTML5开发手册》

    一.HTML5中新的结构元素 1. HTML5初始文件 1.1.doctype 在之前,doctype的声明是这样的: <!DOCTYPE HTML PUBLIC "-//W3C//D ...

  7. 读书笔记:《HTML5开发手册》-- 现存元素的变化

    继续学习HTML5语义化的内容,今天主要介绍一下,HTML5之前的元素经HTML5规范后的语义及一些使用示例. 一.cite HTML5对cite元素的定义进行了很大的修改,在HTML4中,cite元 ...

  8. 读书笔记---HTML5实战 MARCO CASARIO(后六章)

    画布叠加:用CSS的z-index和position; 第八章 HTML5通信API ①XMLHTTPREQUEST是JS中用于服务器交互的API; ②用HTML5的POSTMESSAGE API实现 ...

  9. VxWorks 6.9 内核编程指导之读书笔记 -- C++开发

    5.1 介绍 针对C++的VxWorks配置 C++头文件 使用C++启动任务 C和C++之前调用代码 C++编译器说明 在信号处理和ISR中使用C++ 下载C++编写的内核模块 C++编译器的不同 ...

随机推荐

  1. TFS使用笔记——合并不同分支的代码

    问题描述:我们需要把2.37中改动的代码合并到2.38当中. 查看“Pending Changes”,单击“Change”列排序,查看merge的items,然后选中merge的items,最后“Ch ...

  2. 我遇到的问题:耗时久/效率低 ---> 应对方案: 行动-结果指向

    这一篇打的时候,时间都挺靠后的了, 当时出现错误,很慌了,一个是时间比较久,5点多了,一个是陈果已经做了很多题了,这些是事实. 导致我慌张的原因,简单来说是比较,长久以来,我都爱去和别人比较.如果赢了 ...

  3. ASP.NET Web Api vs Node.js Benchmark

    http://mikaelkoskinen.net/post/asp-net-web-api-vs-node-js-benchmark ASP.NET Web Api vs Node.js Bench ...

  4. Java基础面试题(进程和线程的区别)

    进程和线程的区别 1.定义 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更 ...

  5. leetcode第一刷_N-Queens

    八皇后问题应该是回溯法的教学典范.在本科的时候,有一门课叫面向对象.最后的附录有这个问题的源码.当时根本不懂编程,照抄下来,执行一下出了结果都非常开心,哎. 皇后们的限制条件是不能同行同列,也不能同对 ...

  6. BZOJ3052:[WC2013]糖果公园(树上莫队)

    Description Input Output Sample Input 4 3 51 9 27 6 5 12 33 13 41 2 3 21 1 21 4 20 2 11 1 21 4 2 Sam ...

  7. PHP microtime() 函数

    定义和用法 microtime() 函数返回当前 Unix 时间戳和微秒数. 语法 microtime(get_as_float) 参数 描述 get_as_float 如果给出了 get_as_fl ...

  8. Day14 集合(一)

    集合总体介绍 Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列 ...

  9. App性能测试-GT

    无意之间发现了GT(随身调)这个性能测试工具,该工具是由腾讯出品的开源测试工具,直接运行在手机上的“集成调测环境”. 1.下载:下载地址:开源地址:https://github.com/Tencent ...

  10. 红米5/红米5 Plus逼出最强魅蓝Note6?降价后已成性价比神机

    从品牌到产品命名,小米旗下的红米与魅族旗下的魅蓝似乎是一对天生的对手,如今小米即将发布千元全面屏的红米5/红米5 Plus,暂时没有全面屏手机推出的魅蓝也拿出了自己的应对策略,魅蓝的办法简单粗暴:直接 ...