本章内容:
标签的语义
为什么要使用语义化标签
如何确定你的标签是否语义良好
常见模块你真的很了解吗

标签的语义

HTML标签的设计都是有语义考虑的,部分标签的中文翻译图示及本章内容参看:3.1 标签的语义。其中div和span是没有语义的,它们只是分别用作块儿级元素和行内元素的区域分割符。

为什么要使用语义化标签

搜索引擎看不到视觉效果,看到的只是代码,只能通过标签来判断内容的语义。

专注于结构:通过标签可以知道“这是个标题”、“这是个段落”,等等。

CSS布局的一个误区:只要不是table布局,只要是通过CSS布局就是对的,就是符合Web标准的。

在HTML、CSS、JavaScript这三大元素中,HTML才是最重要的,结构才是重点,样式是用来修饰结构的。正确的做法是,先确定HTML ,确定语义的标签,再来选用合适的CSS

如何确定你的标签是否语义良好

浏览器会根据标签的语义给定一个默认的样式。判断网页标签语义是否良好的一个简单方法是:去掉样式,看网页结构是否组织清晰有序,是否仍然有良好的可读性。

值得重点提及的h标签,其含义为“标题”,搜索引擎对这个比较敏感,尤其是h1,h2。h标签应该是完整有序没有断层的。即h1、h2、h3、h4这样依次列排下来,不能出现漏掉h2的情况。

调试插件:Firefox--Web Developer。参考站点:W3C官方站点。

常见模块你真的很了解吗

标题和内容

<div>
<h2>标题</h2>
<a href="#">更多</a>
</div>
<p>
内容
</p>

表单

<form action="" method="">
<fieldset>
<legend>登录表单</legend>
<p>
<label for="name">账户:</label><input type="text" id="name" name="name" />
</p>
<p>
<label for="pwd">账户:</label><input type="text" id="password" name="password" />
</p>
<input type="submit" value="登录" />
</fieldset>
</form>

一般来说,表单域要用fieldset标签包起来并用legend标签说明表单的用途。每个input标签对应的说明文本都需要用label标签,并通过为input设置id属性,在label标签中设置for=someld,来让说明文本和相应的input关联起来。在用户点击这个说明文本的时候,相关联的input自动获得焦点,方便用户输入信息或变成相应的选中状态等。

表格

table。虽然在CSS布局中table不推荐用来布局,但它仍有一席之地--在二维数据展示方面它是最好的选择。

表格标题要用caption,表头要用thead包围,主体部分用tbody包围,尾部要用tfoot包围,表头一般和单元格要区分开,表头用th,一般单元格用td。

语义化标签应注意的一些其它问题

为了保证网页去样式后的可读性,并且又符合Web标准,我们应注意以下几点:

  • 尽量少的使用无语义标签div和span;
  • 在语义不明显,既可以用p也可以使用div的情况下,尽量用p,p默认情况下有上下间距,去样式后的可读性更好,对兼容特殊终端有利;
  • 不要使用纯样式标签,如b、font和u等,改用CSS设置。语义上需要强调的文本可以包在strong或em标签里,strong和em有“强调”的语意,strong默认加粗,em默认斜体。

《编写高质量代码-Web前端开发修改之道》笔记--第三章 高质量的HTML的更多相关文章

  1. 《编写高质量代码-Web前端开发修改之道》笔记--第二章 团队合作

    本章内容: 揭秘前端开发工程师 欲精一行,必先通十行 增加代码的可读性--注释 提高重用性--公共组件和私有组件的维护 冗余和精简的矛盾--选择集中还是选择分散 磨刀不误砍柴工--前期的构思很重要 制 ...

  2. 《编写高质量代码-Web前端开发修改之道》笔记--第一章 从网站重构说起

    本章内容: 糟糕的页面实现,头疼的维护工作 Web标准--结构.样式和行为的分离 前端的现状 打造高品质的前端代码,提高代码的可维护性--精简.重用.有序 糟糕的页面实现,头疼的维护工作 工作中最大的 ...

  3. 编写高质量代码:Web前端开发修炼之道(一)

    最近老大给我们买来一些技术方面的书籍,其实很少搬着一本书好好的完整的看完过,每每看电子档的,也是打游击式的看看这章,瞅瞅那章,在那5本书中挑了一本比较单薄的<编写高质量代码web前端开发修炼之道 ...

  4. 读《编写高质量代码-Web前端开发修炼之道》笔记

    第一章 1.Web标准由一系列标准组合而成,核心理念是将网页的结构,样式和行为分离,所以分为三大部分:结构标准,样式标准和行为标准.结构标准包括XML标准,XHTML标准,HTML标准:样式标准指CS ...

  5. 编写高质量代码:Web前端开发修炼之道(三)

    第五章:高质量的Javascript 这章的内容我看的最久,这是跟我js基础没打好有着莫大的关系,但是还是耐着性子看完了, 不懂的东西都是百度上搜索,理解后再继续.下面是记录下来的笔记. 1)如何避免 ...

  6. 编写高质量代码:Web前端开发修炼之道(二)

    第四章:高质量的css 1)怪异模式和标准模式 在标准模式中,浏览器根据规范表现页面:而怪异模式通常模拟老式浏览器的行为以防止老站点无法工作. 他们两者之间的差异比较典型的表现在IE对盒模型的解析:在 ...

  7. 《编写高质量代码——Web前端开发修炼之道》读后随笔

    结构样式行为的分离 结构标准包括XML标准.XHTML标准.HTML标准:样式标准有CSS标准:行为标准主要包括DOM标准和ECMAScript标准. 通常的项目会按照如上的方式进行分离,但自己曾今做 ...

  8. 编写高质量代码:Web前端开发修炼之道(四)

    这一节是继上一节高质量的Javascript 7)编程实用技巧 1:弹性 从 一个标签区和内容区的实例(就是点击不同的标签菜单显示不同的内容块)来说明不需要每个tabmenu都设置onclick事件, ...

  9. 【读书笔记】读《编写高质量代码—Web前端开发修炼之道》 - JavaScript原型继承与面向对象

    JavaScript是基于原型的语言,通过new实例化出来的对象,其属性和行为来自于两部分,一部分来自于构造函数,另一部分是来自于原型.构造函数中定义的属性和行为的优先级比原型中定义的属性和优先级高, ...

随机推荐

  1. iOS strong 和weak的形象理解

    转自:http://hi.baidu.com/phone_lwc/item/c36e5bfe1cf9c313ce9f32be 觉得讲的很容易理解 The difference is that an o ...

  2. phonegap platform add ios 出错的问题

    在Mac上新安装的Phonegap,版本3.3-0.18.0. 本来创建项目后按教程: http://docs.phonegap.com/en/edge/guide_platforms_ios_ind ...

  3. <label>标签for属性的妙用

    在用户注册的时候,常常用户点击文字就需要将光标聚焦到对应的表单上面,这个是怎么实现的呢?就是下面我要介绍的<label>标签的for属性 定义:for 属性规定 label 与哪个表单元素 ...

  4. QTP自学攻略

    QTP自学攻略 自学总是很痛苦的,看大量的书籍,可是学到的东西却不是那么实用,下面整理了一些在QTP中经常需要的函数,以及方法很实用!  QTP常用函数  1, 获取对话框相应的文字: GetVisi ...

  5. 杂乱无章之Oracle(一)

    1. 设置共享池大小 SQL>ALTER  SYSTEM  SET  SHARED_POOL_SIZE=32M; 2. 数据库高速缓冲区(database  buffer  cache):SQL ...

  6. C#打开指定目录,并将焦点放在指定文件上。相对路径(程序起动的目录)

    string basepath = AppDomain.CurrentDomain.BaseDirectory; string filepath = "logs\\Log.log" ...

  7. Active Session History (ASH) Performed An Emergency Flush Messages In The Alert Log

    Active Session History (ASH) Performed An Emergency Flush Messages In The Alert Log (文档 ID 1385872.1 ...

  8. Adobe Edge Animate –EdgeCommons Log和全局变量设置功能

    Adobe Edge Animate –EdgeCommons Log和全局变量设置功能 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 一.Log功能 当 ...

  9. js实现归并排序

    function merge(s_arr, d_arr, start, middle, end){ var s_temp = start; var m_temp = middle+1; var tem ...

  10. [改善Java代码]在switch的default代码块中增加AssertionError错误

    switch的后跟枚举类型,case后列出所有的枚举项,这是一个使用枚举的主流写法,那留着default语句似乎没有任何作用了,程序已经列举出了所有的可能选项,肯定不会执行到default语句,. 错 ...