CSS命名规范之语义化标签

1.为什么要有语义化标签?
以前的html基本上就是div+css,然而div没有任何意义,全靠css显示页面的样式,因而近几年开发者提出了html结构的语义化,所以w3c就制订了语义化标签。

2.什么是语义化?
语义化就是构成html结构的标签要有意义,比如<header>表示头部,<main>表示页面主体,<footer>表示页面底部,那么这些标签构成的html结构就是有意义的,有语义化的,如果页面的头部,内容,底部用div表示,那么它就不是一个语义化的html结构。

3.怎么知道自己的页面结构是否语义化?
只要去掉css,看html代码的结构是否清晰,再看页面内容是否正常显示。

4.语义化的优点?
 · 有语义化的标签的html结构更加清晰,方便编写代码;
 · 对于团队来说,方便团队的开发与维护;
 · 对于爬虫有利于seo,对于浏览器更加方便解析,使我们的网站更好的被搜索引擎抓取收录,更自然的获得更高的流量
 · 最重要的是对于用户,因为网速的原因导致没有加载css,页面也能呈现出良好的页面结构;
某些标签属性alt,title能带来良好的用户体验,还有就是用好label标签更利于用户交互;
 · 在特殊终端,如视障阅读器中语义化html可以呈现良好的结构。

5.怎么做才能写出语义化的html?
(1)少使用或不使用<div>和<span>标签,用<p>标签代替<div>标签; 由于div和span没有含义,也因此十分适合作为容器标签
(2)不使用纯样式标签如:<b>、<font>、<u>标签;不使用<b>和<i>
(3)强调文本放在<strong>或者<em>标签中; 强调用<em>和<strong>,纯粹加粗用<b>。

    备注:<b>标签语义为“加粗”,<em>标签语义为“强调”,<strong>标签语义为“更强烈的强调” 而且em 默认用斜体表示,strong 用粗体表示。
(4)使用表格table时,标题用<caption>,表头要用<thead>,主体部分用<tbody>包围,尾部用<tfoot>包围,表头用<th>标签,单元格用<td>
(5)表单域用<filedset>,用<lengend>标签说明表单的用途;
(6)<input>通过id或者for属性与<label>标签关联
(7)alt除了做图片解释以外,可以作为页面未加载出来的文字
(8)使用br增加行间距的行为是错误的,​​<br />​​标签主要用于文本内容换行
(9)html5新加的语义化标签,如​​<header>,<aside>,<article>,<section>,<footer>,<nav>​​等

6.html5新语义元素

以下应用于页面整体布局适用标签
<header>:页眉通常包括网站标志、主导航、全站链接以及搜索框。
<nav>:标记导航,仅对文档中重要的链接群使用。
<main>:页面主要内容,一个页面只能使用一次。如果是web应用,则包围其主要功能。
<article>:定义外部的内容,其中的内容独立于文档的其余部分。
<section>:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。
<aside>:定义其所处内容之外的内容。如侧栏、文章的一组链接、广告、友情链接、相关产品列表等。
<footer>:页脚,只有当父级是body时,才是整个页面的页脚。
<hgroup>:标题组合使用(一个盒子内有两个标题,可以使用组合)。

以下应用于页面细节展示适用标签
<small>:呈现小号字体效果,指定细则,输入免责声明、注解、署名、版权。
<strong>:和 em 标签一样,用于强调文本,但它强调的程度更强一些。
<em>:将其中的文本表示为强调的内容,表现为斜体。
<mark>:使用黄色突出显示部分文本。
<figure>:规定独立的流内容(图像、图表、照片、代码等等)(默认有40px左右margin)。
<figcaption>:定义 figure 元素的标题,应该被置于 figure 元素的第一个或最后一个子元素的位置。
<cite>:表示所包含的文本对某个参考文献的引用,比如书籍或者杂志的标题。(文本显示为倾斜)
<blockquoto>:定义块引用,块引用拥有它们自己的空间。
<time>:datetime属性遵循特定格式,如果忽略此属性,文本内容必须是合法的日期或者时间格式。
<abbr>:简称或缩写。
<dfn>:定义术语元素,与定义必须紧挨着,可以在描述列表dl元素中使用。
<address>:作者、相关人士或组织的联系信息(电子邮件地址、指向联系信息页的链接)。
<del>:移除的内容。
<ins>:添加的内容。
<code>:标记代码。
<meter>:定义已知范围或分数值内的标量测量。(Internet Explorer 不支持 meter 标签)
<progress>:定义运行中的进度(进程)。

猜你喜欢

转载自blog.csdn.net/BUG_CONQUEROR_LI/article/details/130282145