美文网首页
理解前端语义化(转载)

理解前端语义化(转载)

作者: 殖民_FE | 来源:发表于2017-06-06 08:51 被阅读0次

    <h3>1.Web标准</h3>
    Web标准是由一系列标准组合而成。一个网页主要由三部分组成:结构层、表现层和行为层。对应的标准也分三方面:结构化标准语言主要包括XHTML和HTML以及XML,表现层标准语言主要包括CSS,行为标准主要包括对象模型,DOM、ECMAScript等。
    结构化标准语言,就是W3C规定的那样;
    ㈠标签的书写,需要开始和结束。单便签除外;
    ㈡块级元素不能放在<p></p>标签里面。li内可以包含div标签。
    ㈢块元素里面可以放在块和内联,特殊的 p和 h1—h6里面不要放块元素,li和div可以放很多。因为这两个标签,本身就有容器的属性
    ㈣内联里面要放内联,不要放块。
    ㈤结构与表现分离
    ㈥命名一定要规范
    表现层标准:
    css的书写,首先要尽可能使用外部引入的方式,因为结构层尽可能的减少表现层的代码过多出现。达到分离的目的。css的选择器有哪些,那些属性可以继承,那些不可以继承。他们之间的优先级是怎么样的。
    怎么用最简洁的css代码表达设计者的想法,而不只是实现设计者的想法就没事了。我们要的是代码简洁,代码过多,反而让浏览器解析很多,浪费时间。
    行为层标准:
    主要是JavaScript中的知识。比如DOM、ECMAScript。使用javascript中的标准,即可。一般对于用户的行为,或者说页面上的动态效果的一些特殊实现,我们可以会考虑到使用javascript来进行书写,但是代码的可复用性,模块化。变量,作用域。
    可能更多的就是javascript的规定了。自己把自己的理解程度说出来就可以了。
    <h3>2.标签语义化</h3>
    什么是语义化?其实简单说来就是让机器可以读懂内容。web页面的解析是由搜索引擎来进行搜索,机器来解析。所以语义化的标准是,尽可能的让机器读懂。
    最初的HTML中如h1~h6、thead、ul、ol等标签,通过标签的语义,最初设计的想法,来达到语义化的要求。如标题、表头、无序、有序列表,搜索引擎很好的利用了这些语义化标签抓取内容
    后来,最初定义的HTML语义化标签,不足以实现对Web页面各个部分的功能或位置描述,所以Web前端人员利用HTML标签的id和class属性,进一步对HTML标签进行描述,如对页脚HTML标签添加如id="footer"或者class="footer"的属性(值),以“无声”的方式在不同的前端程序员或者前后端程序员间实现交流。
    制定HTML5的W3C组织采用了诸如header、footer、section等语义化标签,来进行页面布局的设计想法,弥补了采用id="header"或者class="section"等。
    更深层次的语义化,是自己在团队合作的过程中,对于需要声明的变量和class,id。尽可能使用彼此能理解的英文。这样减少合作的成本,加快合作的效率。
    为什么要语义化?
      1.)为了在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构:为了裸奔时好看;
      2.)用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用;
      3.)有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
      4.)方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;
      5.)便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。

    写HTML代码时应注意什么?
      1.)尽可能少的使用无语义的标签div和span;
      2.)在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;
      3.)不要使用纯样式标签,如:b、font、u等,改用css设置。
      4.)需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
      5.)使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;
      6.)表单域要用fieldset标签包起来,并用legend标签说明表单的用途;
      7.)每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。

    相关文章

      网友评论

          本文标题:理解前端语义化(转载)

          本文链接:https://www.haomeiwen.com/subject/hgcgfxtx.html