第一部分,什么是语义化?其实简单说来就是让机器可以读懂内容。

Web语义化是指使用语义恰当的标签,使页面有良好的结构,页面元素有含义,能够让人和搜索引擎都容易理解。

  1. 我们可以让机器的理解能力越来越接近人类,人能看懂、听懂的东西,机器也能理解;
  2. 我们应该在发布内容的时候,就用机器可读的、被广泛认可的语义信息来描述内容,来降低机器处理 Web 内容的难度(HTML 本身就已经是朝这个方向迈出的一小步了)
  3.  

  4. 小提示:h1拥有最高的权值,在一个页面中最好指使用1个h1来突出你的内容,太多的h1会分散其整个页面的权重,对搜索引擎也是非常的不友好。

第二部分,web语义化的作用

1)利于机器识别,方便SEO;

2)代码简洁明了,利于阅读和维护,方便以后扩展

3)利于团队协作,减少出错几率,使工作有个统一标准;

第三部分,如何实现代码语义化

1、 首先要知道Web中的常用标签有哪些,知道每个标签的具体含义和应用场合。这些知识网上有很多资料,比如 菜鸟教程 和 w3cSchool 。这里补充一下, Code Guide 上有很全面的代码书写规范,建议大家也去看看 


2. 其次,自己多实践。在敲代码的时候,多想想每个地方的结构是否都符合Web语义化。在练习中不断加深对Web语义化的理解和应用。 


3. 最后,多去模仿一些网站的代码,看看别人设计的代码是如何做到Web语义化的,多吸取别人的经验和方法。

 

第四部分,写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关联起来。

8)图片加alt属性 宽  高

9)a链接加title属性

第五部分,CSS类命名的语义化VS结构化方式

一般而言,CSS类名的语义化声明方式应当考虑你的页面中某个相对元素的”用意”,独立于它的”定位”或确切的特性(结构化方式)。像left-bar, red-text, small-title…这些都属于结构化定义的例子。

让我们看看下面这个例子:

CSS-语义化-结构化

  …而现在我们想把页面中的元素调换一下位置,如果你使用的是结构化方式(1),那么你就要把所有CSS类名重新进行定义,因为它们的位置变了。在布局(3)中,我们看到元素都倒转了: right-bar 现在成了 “left-bar”,而 left-content 成了 “right-content”。如果你使用语义化方式则避免了此类问题。

 

  换句话说,使用语义化方式的话,你在修改网站布局的时候可以仅仅修改相关CSS类的属性即可,而不用修改它们的类名了,如果网站的代码很庞大,这将节省大量的时间。

关于语义化的一些建议:

  在开始之前,我想推荐两种简单的编写较好的CSS代码的指导方针:

  1. 为CSS类名定义的时候,尽量使用小写字母,如果有两个以上的单词,在每个单词之间使用”-“符或单词首字母大写(第一个单词除外)。如:”main-content”或”mainContent”。
  2. 优化CSS代码,仅创建关键主要的CSS类并重新为子元素使用符合HTML标准的标签(h1, h2, p, ul, li, blockquote,…),例如,不要使用这种哦你那个方式:

<div class=”main”>
    <div class=”main-title”>…</div>
    <div class=”main-paragraph”>…</div>
</div>

而要这样写:

<div class=“main”>
    <h1>…</h1>
    <p>…</p>
</div>

三栏布局中使用语义化方式的例子

  让我们来通过这个简单的例子讲解一下如何为经典的三栏布局使用语义化方式命名:

CSS-语义化-教程

   使用语义化方式为CSS命名可以像这样:

#container{…}
/*—- Top section —-*/
    #header{…}
    #navbar{…}
    /*—- Main —-*/
    #menu{…}
    #main{…}
    #sidebar{…}
    /*—- Footer —-*/
    #footer{…}

    1. Container
      “#container” 就是将你页面中的所有元素包在一起的部分,这部分你还可以命名为: “wrapper“, “wrap“, “page“.
    2. Header
      “#header” 是网站页面的头部区域,一般来讲,它包含网站的logo和一些其他元素。这部分你还可以命名为:”top“, “logo“, “page-header” (或 pageHeader).
    3. Navbar
      “#navbar“等同于横向的导航栏,是最典型的网页元素。这部分你还可以命名为:“nav”, “navigation”, “nav-wrapper”.
    4. Menu
      “#Menu”区域包含一般的链接和菜单,这部分你还可以命名为: “sub-nav “, “links“.
    5. Main
      “#Main”是网站的主要区域,如果是博客的话它将包含你的日志。这部分你还可以命名为: “content“, “main-content” (or “mainContent”)。
    6. Sidebar
      “#Sidebar” 部分可以包含网站的次要内容,比如最近更新内容列表、关于网站的介绍或广告元素等…这部分你还可以命名为: “sub-nav“, “side-panel“, “secondary-content“.
    7. Footer
      “#Footer”包含网站的一些附加信息,这部分你还可以命名为: “copyright“.
posted on 2017-11-09 16:16  admina  阅读(165)  评论(0编辑  收藏  举报