• 浅谈语义化


    什么是语义化?

            为什么我们提倡书写语义化的代码?

    ① 语义化的代码,结构清晰,具有良好的可读性,利于维护。

            试想一下,当你回顾几个月前甚至是几年前写的代码,如果结构混乱,那重新梳理的过程是十分麻烦,效率十分低下的;当你接手别人写的代码、阅读别人写的代码的时候,如果他的代码没有很好的按照语义化的标准,那么,面对这一大片由各种字符组合成的、编译器识别良好的代码,在你的眼里,就不是那么容易的梳理了,浪费时间、效率低下。

            语义化的代码,不仅机器能够识别,对人也友好,不仅能够方便代码的阅读,对代码的后期维护也有很大帮助,更容易维护,提高效率。

    ② 对搜索引擎友好,利于搜索引擎的抓取。

            语义化的代码,可以让搜索小蜘蛛遇到你的时候,能快速的识别出你的网页是什么类型、什么方向的内容,网页的结构、内容由什么组成,小蜘蛛能够更容易的爬到你的网页上。

    ③ 更容易让一些特殊设备识别、利于特殊终端的阅读。

            语义化很好的代码,不仅可以在浏览器里很好的显示,也可以被一些阅读器识别,比如说有的人视力模糊、甚至是看不见,这样,他肯定是要让阅读器读给他听,而当我们在网页的某个位置放了一张图片,如果我们给这个img标签加一个alt属性,alt=“这是什么什么的图片”,这样,就算是那些眼睛看不到、看不清楚的人群,但也能够通过语音阅读设备知道这里是一张图片,并且知道图片表达的是什么内容。

    怎样书写语义化的代码、遵循语义化标准?

    ① 了解标签属性的语义;

            尽量用有结构含义的,少用无语义的,如 <span><div> 无意义,看不出是什么东西,可是<address>一看就知道这里面的是地址,<em>标签一看就知道这个是强调的内容,区分于普通内容。

    ② 统一规范;

    ③ 样式留给css;

    ④ 手写,避免使用生成工具;

    ⑤ 命名遵循行业标准(微格式 •hcard/vcard 间隔符•h-product 下划线 驼峰命名)

    一些语义化标签

    ① article标签装载显示一个独立的文章内容。例如一篇完整的论坛帖子,一则网站新闻,一篇博客文章等等,一个用户评论等等。 artilce可以嵌套,则内层的artilce对外层的article标签有隶属的关系。例如,一个博客文章,可以用article显示,然后一些评论可以以article的形式嵌入其中。

    ② section 标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。

    ③ aside 用来装载非正文类的内容。例如广告,成组的链接,侧边栏等等。

    ④ hgroup 标签用于对网页或区段的标题元素(h1-h6)进行组合。例如,在一个区段中你有连续的h系列的标签元素,则可以用hgroup将他们括起来。

    ⑤ header 标签定义文档的页面组合,通常是一些引导和导航信息。

    ⑥ footer 标签定义 section 或 document 的页脚。在典型情况下,该元素会包含创作者的姓名、文档的创作日期以及/或者联系信息。

    ⑦ nav 标签定义显示导航链接不是所有的成组的超级链接都需要放在nav标签里。nav标签里应该放入一些当前页面的主要导航链接。 例如在页脚显示一个站点的导航链接(如首页,服务信息页面,版权信息页面等等),就可以使用nav标签,当然,这不是必须的。

    ⑧ time 标签定义公历的时间(24 小时制)或日期,时间和时区偏移是可选的。该元素能够以机器可读的方式对日期和时间进行编码,这样, 举例说,用户代理能够把生日提醒或排定的事件添加到用户日程表中,搜索引擎也能够生成更智能的搜索结果。

    <p>我们在每天早上 <time>9:00</time> 开始营业。</p> 
    <p>我在 <time datetime="2008-02-14">情人节</time> 有个约会。</p>
    

    ⑨ mark 标签定义带有记号的文本。请在需要突出显示文本时使用 <mark> 标签。

    ⑩ figure标签规定独立的流内容(图像、图表、照片、代码等等)。figure 元素的内容应该与主内容相关,但如果被删除,则不应对文档流产生影响。

    ⑪ figcaption 标签定义 figure 元素的标题(caption)。"figcaption" 元素应该被置于 "figure" 元素的第一个或最后一个子元素的位置。

    ⑫ contextmenu 添加到系统右键菜单




    本文链接:http://www.cnblogs.com/xsilence/p/6050468.html

  • 相关阅读:
    用PHP实现 HTTP断点续传、分块下载文件(Socket)
    织梦cms 判断当前页面是否为首页和栏目页高亮
    Go Exec 僵尸与孤儿进程
    Nginx 配置 SSL,很系统!很完整!解决 Nginx 报错 nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf
    CentOS7安装及配置 Zabbix Server全步骤,超详细教程
    CentOS7安装及配置 Zabbix Agent全步骤,超详细教程
    top查看cpu消耗最高线程
    Kisso 使用笔记(个人总结,一直在更新)
    Android问题总汇
    关于Vue中checkbox复选框的双向数据绑定问题
  • 原文地址:https://www.cnblogs.com/xsilence/p/6050468.html
Copyright © 2020-2023  润新知