web语义话

对于web语义化的理解一直不够清晰,最近看了两篇关于web语义话的文章,整理了一下,跟大家分享。

  随着Web前端“结构-表现-行为”的原则不断细化,对Web语义化也提出了更高的要求。何为Web语义化?个人认为,Web语义化是指在进行HTML结构、表现、行为设计时,尽量使用语义化的标签,使程序代码简介明了,易于进行Web操作和网站SEO,方便团队协作的一种标准,以图实现一种“无障碍”的Web开发。 

我们可以通过下面两端代码来对比一下:

<header>
    <h1>标题</h1>
</header>
<main></main>
<footer></footer>

此段代码能都非常直观的反应网页的组成部分:header、main、footer。不仅程序猿能够很清楚的看懂,而且也非常便于浏览器的识别。在进行SEO时,这三部分的内容是能够被搜索引擎识别的。

现在我们来对比一下另外一种写法:

<div>
    <span>标题</span>
</div>
<div></div>
<div></div>

你能知道这表示的是header、main、footer三部分?显然不能。并且这种问题不是简单通过加class = "header"来实现,因为SEO是通过网页的DOM结构来搜索的,并且一个网页中的class是很多的,不要增加没必要的class。 
当然在使用CSS和JavaScript时,也要尽量使class、id及函数名等实现见文知意。 
而在团队协作中,践行Web语义化使得各前端工程师有一个统一的参照标准,防止了参差不齐的代码使得团队协作效率的低下和代码bug的增多。

 

接下来我们可以对比另外两组代码,进一步的理解web语义化:

<table>
        <tr>
            <td colspan="2">Student List</td>
        </tr>
        <tr>
            <td>Name</td>
            <td>Age</td>
        </tr>
        <tr>
            <td>Byron</td>
            <td>24</td>
        </tr>
        <tr>
            <td>Vincent</td>
            <td>25</td>
        </tr>
        <tr>
            <td>Casper</td>
            <td>27</td>
        </tr>
    </table>

就算是没有看到页面效果,相信很多同学看到内容后也能明白这个表格在描述什么,但是计算机(搜索引擎)却不明白,计算机并不知道Name或者Age代表title,而下面的是内容。但如果这么写

<table>
        <caption>Student List</caption>
        <thead>
            <tr>
                <th>Name</th>
                <th>Age</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Byron</td>
                <td>24</td>
            </tr>
            <tr>
                <td>Vincent</td>
                <td>25</td>
            </tr>
            <tr>
                <td>Casper</td>
                <td>27</td>
            </tr>
        </tbody>
    </table>

这样即使我们不看内容也能了解这大概是什么,计算机也会理解哪些是标题,哪些是header,哪些是内容。

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

Web语义化的作用

可以归纳为以下3点: 
- 语义化的Web结构利于机器识别,方便SEO; 
- 语义化的Web结构代码简洁明了,利于人阅读和维护,方便以后扩展; 
- 语义化的Web结构利于团队协作,减少出错几率,使工作有个统一标准;

如何实现代码语义化

其实项目在不同的要求下可能会在Web语义化方面会有不同的方式,但是个人认为,培养自己写代码时遵循Web语义化的方法是相同的。具体可以是如下步骤: 
1. 首先要知道Web中的常用标签有哪些,知道每个标签的具体含义和应用场合。这些知识网上有很多资料,比如 菜鸟教程 和 w3cSchool 。这里补充一下, Code Guide 上有很全面的代码书写规范,建议大家也去看看 
2. 其次,自己多实践。在敲代码的时候,多想想每个地方的结构是否都符合Web语义化。在练习中不断加深对Web语义化的理解和应用。 
3. 最后,多去模仿一些网站的代码,看看别人设计的代码是如何做到Web语义化的,多吸取别人的经验和方法。

 

参考链接:http://www.jb51.net/web/77505.html

     https://www.zhihu.com/question/20455165/answer/15183203

     http://www.mamicode.com/info-detail-482090.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-05-04 11:33  蜗牛不小  阅读(298)  评论(0编辑  收藏  举报