figure和figcaption是一对经常被一起使用的语义化标签。如果你还没有看过规范中的定义,现在有机会在你的项目中使用它们了。如果你不知道怎么用,下面是关于如何正确使用它们的一些提示。

figure元素经常用于image:

  1. <figure>
  2. <img src="dog.jpg" alt="Maltese Terrier">
  3. </figure>

figure元素表示内容的自包含单元。这个含义是,如果你把元素无论是移出文档或移动到文档的底部,它都不会影响文档的意思。

尽管如此,还是需要记住一点,并不是所有的image都是一个figure.

figure元素包含多个image

如果文档中多个img标签是相互关联的,可以把它们放到一个figure中。

  1. <figure>
  2. <img src="dog1.jpg" alt="Maltese Terrier">
  3. <img src="dog2.jpg" alt="Black Labrador">
  4. <img src="dog3.jpg" alt="Golden Retriever">
  5. </figure>

其它元素也可以应用figure标签

figure元素并不局限于在image上使用,你也可以做类似这些事:

  • 代码块
  • 视频
  • 音频剪辑
  • 广告

下面是一个使用figure来表示代码块的例子

  1. <figure>
  2. <pre>
  3. <code>
  4. p {
  5. color: #333;
  6. font-family: Helvetica, sans-serif;
  7. font-size: 1rem;
  8. }
  9. </code>
  10. </pre>
  11. </figure>

可以嵌套使用figure

在有需要的时候,可以对figure进行嵌套使用,这里为了增加语义化,添加了ARIA role属性。

  1. <figure role="group">
  2. <figcaption>Dog breeds</figcaption>
  3. <figure>
  4. <img src="dog1.jpg" alt="Maltese Terrier">
  5. <figcaption>Adorable Maltese Terrier</figcaption>
  6. </figure>
  7. <figure>
  8. <img src="dog2.jpg" alt="Black Labrador">
  9. <figcaption>Cute black labrador</figcaption>
  10. </figure>
  11. </figure>

有关如何在figure和figcaption元素上使用ARIA的详细,可以看之前的文章《如何在HTML5中有效使用ARIA》

使用figcaption的正确方式

figcaption元素表示figure的一个图例或标题。

并不是所有的figure都需要figcaption

然而,当使用figcaption时,它最好在figure块中,作为第一个或最后一个元素。

  1. <figure>
  2. <figcaption>Three different breeds of dog.</figcaption>
  3. <img src="dog1.jpg" alt="Maltese Terrier">
  4. <img src="dog2.jpg" alt="Black Labrador">
  5. <img src="dog3.jpg" alt="Golden Retriever">
  6. </figure>

  1. <figure>
  2. <img src="dog1.jpg" alt="Maltese Terrier">
  3. <img src="dog2.jpg" alt="Black Labrador">
  4. <img src="dog3.jpg" alt="Golden Retriever">
  5. <figcaption>Three different breeds of dog.</figcaption>
  6. </figure>

在figcaption中包含其它标签元素

如果希望给图像添加更多语义,你可以使用其它元素,如h1,p

  1. <figure>
  2. <img src="dogs.jpg" alt="Group photo of dogs">
  3. <figcaption>
  4. <h2>Puppy School</h2>
  5. <p>Championship Class of 2016</p>
  6. </figcaption>
  7. </figure>

你在使用figure和figcaption元素时,还有其它哪些方面,在这里没有提到的,可以在评论中写出来。

原文:Quick Tip: The Right Way to Use Figure & Figcaption Elements

作者:Georgie Luhur

原文链接:https://www.sitepoint.com/quick-tip-the-right-way-to-use-figure-and-figcaption-elements/

[翻译]小提示:使用figure和figcaption元素的正确方式的更多相关文章

  1. 【Java】List遍历时删除元素的正确方式

    当要删除ArrayList里面的某个元素,一不注意就容易出bug.今天就给大家说一下在ArrayList循环遍历并删除元素的问题.首先请看下面的例子: import java.util.ArrayLi ...

  2. Java 删除List元素的正确方式

    方式一:使用Iterator的remove()方法 public class Test { public static void main(String[] args) { List<Strin ...

  3. html5-figure和figcaption元素

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

  4. h5中的分组元素figure、figcaption、hgroup元素介绍

    分组元素用于对页面中的内容进行分组. figure元素和figcaption元素 figure元素用于定义独立的流内容(图像.图表.照片.代码等),一般指一个独立的单元.figure元素的内容应该与主 ...

  5. 基于百度通用翻译API的一个翻译小工具

    前几天写了一个简单的翻译小工具,是基于有道翻译的,不过那个翻译接口有访问限制,超过一定次数后会提示访问过于频繁,偶然发现百度翻译API如果月翻译字符少于200万是不收取费用的,所以就注册了一个百度开发 ...

  6. html5标签figure、figcaption

    figure.figcaption,这俩个标签都是定义图文的 常常用到一种图片列表,图片+标题或者图片+标题+简单描述.以前的常规写法: <li> <img src="te ...

  7. C#借助谷歌翻译实现翻译小工具(一)基本功能实现

    软件效果: 实现原理很简单,就是封装谷歌翻译网站:http://translate.google.cn/,一个WebBrowser"肢解"谷歌翻译网站的HtmlElement元素, ...

  8. HTML中的figure与figcaption标签

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

  9. 纯 css 打造一个小提示 tooltip

    最后编辑:2019/11/26 前 无意间在寻找资料时候,发现一个不错的小提示,查看源码竟然是纯手工 css 编写(文章底部参考链接). 效果 使用的特性 css2 中的 attr 函数,所以现在(2 ...

随机推荐

  1. 160408、SpringMVC整合Shiro

    第一步:配置web.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!-- 配置Shiro过滤器,先让Shiro过滤系统接收到的请求 -->  ...

  2. Oracle的存储过程编程

    是一个可以用编程的方式来操作SQL的集合. | |目录 1什么是存储过程? 2存储过程的优点? 3存储过程的缺点? 4存储过程的用途? 5存储过程注意事项? 6如何写存储过程? 7如何执行存储过程? ...

  3. 20165330 2017-2018-2 《Java程序设计》第9周学习总结

    课本知识总结 第十三章 Java网络编程 URL类 URL类是java.net包中的一个重要的类 一个URL对象包含的三个基本信息:协议.地址和资源 协议:必须是URL对象所在的Java虚拟机支持的协 ...

  4. Storm-源码分析- timer (backtype.storm.timer)

    mk-timer timer是基于PriorityQueue实现的(和PriorityBlockingQueue区别, 在于没有阻塞机制, 不是线程安全的), 优先级队列是堆数据结构的典型应用 默认情 ...

  5. json和jsonp解决跨域传输数据等

    https://kb.cnblogs.com/page/139725/ https://blog.csdn.net/lambert310/article/details/51683775

  6. OSGI框架—HelloWorld小实例

    OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...

  7. 14.Iterate a Cursor in the mongo Shell-官方文档摘录

    1 迭代游标 } ); while (myCursor.hasNext()) { print(tojson(myCursor.next())); } } ); myCursor.forEach(pri ...

  8. 一行代码让python的运行速度提高100倍

    python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. “一行代码让python的运行速度提高100倍”这绝不是哗众取宠的 ...

  9. restfull规范

    web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候, 都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案. 目前主流的三 ...

  10. python中的抽象方法

    python中的抽象方法 父类要限制1.子类必须有父类的方法2.子类实现的方法必须跟父类的方法的名字一样 import abc class A(metaclass=abc.ABCMeta): @abc ...