概述

  figure 用于定义一个可附加标题的内容元素,figcaption 用于为figure元素添加标题和描述信息。

  页面中的插图卡片比较常见,卡片中包含有图片的描述信息、标题或者按钮等。

  一般的实现方式可能会用div元素设置background: url()的方式将图片作为背景,其余的描述信息和标题作为div的子元素。

  或者是div元素内部添加img元素,其余的描述信息和标题则定位至图片上方。

  虽然两者都能实现上面的卡片样式,但是HTML的结构和语义化不是非常明显。

  以下HTML结构则非常清晰,figure表明一个插图卡片整体,img为插图,figcaption内部为图片的描述信息和标题。

<figure><img src="data:image.png" alt=""><figcaption>caption and descriptions</figcaption>
</figure>

  因此figure元素的用处也非常明显了,但是figure元素的内容不仅限于图片,也可以包括表格、代码段、诗词等。

特性

  • figure / figcaption为块级双标签,于HTML5中新增,浏览器支持程度比较高,IE8及以下不支持
  • figure含有默认外边距,浏览器不同值大小不同。figure默认的宽度是100%,高度依赖于其内容高度
  • figure可以有多个子元素,但是figcaption最好最多只有一个
  • figure元素的其他内容应与主内容相关,同时其他内容的位置相对于主内容又是独立的。例如插图卡片中,描述信息和标题与图片相关,而描述信息和标题的位置和图片又是相互独立的,删除figcaption元素也不会影响整体

实例

图片

<figure><img src="data:image.png" alt=""><figcaption>caption and descriptions</figcaption>
</figure>

代码段

<figure><figcaption>code</figcaption><pre>function log(val) {console.log(val)}log('hello world')      </pre>
</figure>

引用文本

<figure><figcaption>Shakespeare: </figcaption><blockquote>Nutrition books in the world. There is no book in life, there is no sunlight; wisdom withoutbooks, as if the birds do not have wings.</blockquote>
</figure>

诗词

<figure><figcaption>滕王阁序</figcaption><p>落霞与孤鹜齐飞,秋水共长天一色。</p>
</figure>

应用

  tympanus 中的插图卡片有很多的hover特效,都是利用figurefigcaption来实现的,接下来手动实现一种简单的。

  首先构造HTML基础结构,字体和宽度稍作限制。

figure {margin: auto;min-width: 320px;max-width: 480px;max-height: 360px;font-family: 'Raleway', Arial, sans-serif;cursor: pointer;
}<figure><img src="iamge.png" alt=""><figcaption></figcaption>
</figure>

  figcaption内是图片的描述信息和标题,将figcaption定位至figure上。

figure {...position: relative;
}figcaption {position: absolute;left: 0;top: 0;width: 100%;height: 100%;padding: 2em;box-sizing: border-box;
}

  完善figcaption内部结构。

<figcaption><h2>Messy<span>Duke</span></h2><p>Duke is very bored. When he looks at the sky, he feels to run.</p>
</figcaption>

  插图卡片暂时如下。

  文字颜色修改并居中,h2内字体稍作调,比例缩小0.8,并显示为大写。

figcaption {...color: #fff;text-align: center;
}figure h2 {margin: 0;font-size: 30px;font-weight: 300;text-transform: uppercase;transform: scale(0.8);
}figure h2 span {font-weight: 600;
}

  调整p标签位置,比例缩小0.8

figure p {position: absolute;left: 0;bottom: 30px;margin: 20px;padding: 30px;border: 2px solid #fff;font-size: 18px;transform: scale(0.8);
}

  插图卡片初步完成。

  再考虑鼠标悬浮样式,鼠标悬浮后图片放大2倍,透明度由0.80.1,字体均恢复原本大小,p标签由透明度01

figure {...overflow: hidden;
}figure p {...opacity: 0;
}figure img {opacity: 0.8;
}figure:hover img {opacity: 0.1;transform: scale(2);
}figure:hover h2 {transform: scale(1);
}figure:hover p {transform: scale(1);bottom: 0;opacity: 1;
}

  查看下悬浮效果。

  看着感觉很奇怪,figure加上渐变背景色试试。

figure {...background: linear-gradient(-45deg, #34495e 0%, #cc6055 100%);
}

  有那味了!

  每个元素再添加上过渡。

figure h2 {...transition: transform 0.35s;
}figure p {...transition: opacity 0.35s, transform 0.35s, bottom 0.35s;
}figure img {...transition: opacity 0.35s, transform 0.35s;
}

  来看看最终效果。

  可以尝试性删除figcaption元素来验证最后一条特性,发现对整体页面结构几乎没有影响。

  贴一份完整代码。

<style>figure {margin: auto;min-width: 320px;max-width: 480px;max-height: 360px;position: relative;font-family: 'Raleway', Arial, sans-serif;overflow: hidden;background: linear-gradient(-45deg, #34495e 0%, #cc6055 100%);cursor: pointer;}figcaption {position: absolute;left: 0;top: 0;width: 100%;height: 100%;padding: 2em;box-sizing: border-box;color: #fff;text-align: center;}figure h2 {margin: 0;font-size: 30px;font-weight: 300;text-transform: uppercase;transform: scale(0.8);transition: transform 0.35s;}figure h2 span {font-weight: 600;}figure p {position: absolute;left: 0;bottom: 30px;margin: 20px;padding: 30px;border: 2px solid #fff;font-size: 18px;transform: scale(0.8);opacity: 0;transition: opacity 0.35s, transform 0.35s, bottom 0.35s;}figure img {opacity: 0.8;transition: opacity 0.35s, transform 0.35s;}figure:hover img {opacity: 0.1;transform: scale(2);}figure:hover h2 {transform: scale(1);}figure:hover p {transform: scale(1);bottom: 0;opacity: 1;}
</style><body><figure><img src="data:image.png" alt=""><figcaption><h2>Messy<span>Duke</span></h2><p>Duke is very bored. When he looks at the sky, he feels to run.</p></figcaption></figure>
</body>

HTML5 之 Figure Figcaption 标签相关推荐

  1. html5中figure怎么用,HTML5中figure和figcaption标签用法

    HTML5中figure和figcaption标签一般都是配套使用的,先了解下两者的基本定义,然后结合实例来说明两者的用法. 标签规定独立的流内容(图像.图表.照片.代码等等). figure元素的内 ...

  2. HTML5中figure标签使用实例

    figure元素是一种元素的组合,可带有标题(可选).figure标签用来表示 网站制作 页面上一块独立的内容,将其从网页上移除后不会对网页上的其他内容产生影响.figure所表示的内容可以是图片.统 ...

  3. html5标签详解,HTML5中figcaption标签用法详解

    HTML5中figure和figcaption标签一般都是配套使用的,先了解下两者的基本定义,然后结合实例来说明两者的用法. 标签规定独立的流内容(图像.图表.照片.代码等等). figure元素的内 ...

  4. figcaption标签css,[HTML]正确使用Figure和Figcaption标签(译)_html/css_WEB-ITnose

    原文: Quick Tip: The Right Way to Use Figure & Figcaption Elements figure和 figcaption元素通常作为两个语义化的标 ...

  5. html中figure怎么调图片位置,HTMLfigure figcaption 标签定义图文并茂

    本来想分两篇文章来解释说明figure.figcaption的,但是这俩个标签都是定义图文的,所以我们合起来讲解,大家更能容易接受. 大家在写xhtml.html中常常用到一种图片列表,图片+标题 或 ...

  6. HTML figure 标签 figcaption 标签

    HTML <figure> 标签 实例 用作文档中插图的图像: <figure><p>黄浦江上的的卢浦大桥</p><p>拍摄者:W3Scho ...

  7. figcaption html5,HTML5 figcaption 标签

    实例 html> html(html.cn) The Pulpit Rock is a massive cliff 604 metres (1982 feet) above Lysefjorde ...

  8. html5改成块状标签,HTML5基本网页结构以及标签的改变

    一.HTML5崭新的页面布局: 1.传统的HTML页面布局: 2.HTML5布局: 3.HTML5布局使用的标签: (1)header元素:header元素表示页面总的一个内容区块或者整个页面的标题: ...

  9. html5的新增的标签和废除的标签

    新增的结构标签 section元素  表示页面中的一个内容区块,比如章节.页眉.页脚或页面的其他部分.可以和h1. h2--等元素结合起来使用,表示文档结构.例:HTML5中<section&g ...

最新文章

  1. 二叉树结点地址小错误
  2. 防范最新勒索病毒--坏兔子病毒(伪造Adobe Flash Player更新)的方法
  3. can通道采样频率_CAN总线基础(上)
  4. [Andriod官方训练教程]保存数据之保存键-值对的集合
  5. hdu 7111-Remove
  6. [转载] 使用 Web 标准生成 ASP.NET 2.0 Web 站点
  7. 漏洞 立即留言_漏洞挖掘小白入坑指南
  8. python编程(python开发的三种运行模式)
  9. 如何用div装html,​div标签如何使用的
  10. 模拟 Vue 手写一个 MVVM
  11. 虚度大一一年又如何,双非本科大三学弟连斩腾讯字节
  12. UML建模之活动图介绍(Activity Diagram)
  13. 只允许,同一域名下IFRAME,禁止直接访问页面
  14. echarts全国省市县下钻
  15. SDUT—Python程序设计实验五(列表与元组)
  16. Arduino开发板DIY简易机械臂
  17. 参加IBM素质拓展活动
  18. Speedoffice(excel)如何利用SUMIF函数求和
  19. 如何把一张照片的像素提高_如何提升照片的像素?
  20. c语言oj数据通过,OJ输入数据的处理

热门文章

  1. 使用python批量修改txt文件中的信息
  2. IT、TT、TN系统,你真的了解吗?
  3. unity 导入gltf_GLTF相关资料
  4. medini analyze软件下载安装使用试用购买
  5. 错误: 找不到符号 符号: 类 DaggerActivityComponent错误解决
  6. Flutter FloatingActionButton 及仿闲鱼的发布按钮
  7. 网络运维工程师 ,需要掌握知识的总结。
  8. 新手学Python之学习官网教程(二: Using the Python Interpreter)
  9. vivoX80Pro和华为P50Pro哪个值得入手参数对比
  10. 用什么擦地最干净脑筋急转弯_小学生语文试卷:为什么秋天大雁要飞回南方?答案让人“喷饭”...