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

标签的语义

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. mysql-锁表机制分析(转)

    为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制.一.概述MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(tab ...

  2. 关于更改apache和mysql的路径的问题..

    1.禁用selinux 系统管理->selinux管理->enforing模式..改为disable..然后重启 2.修改httpd.conf的各个路径 索引后发现指向欢迎页面则注释下面这 ...

  3. yii中阻止 SHOW CREATE TABLE and SHOW COLUMNS 每次执行

    Disable SHOW CREATE TABLE and SHOW COLUMNS in Yii为啥会显示:SHOW CREATE TABLE and SHOW COLUMNS 答案:This is ...

  4. pt-online-schema-change原理解析 博客相关需要阅读

    xiaoboluo768  http://www.lai18.com/user/481193.html   都说pt-toolkit工具集中的pt-online-schema-change可以在线不锁 ...

  5. MYSQL基础笔记(五)- 练习作业:站点统计练习

    作业:站点统计 1.将用户的访问信息记录到文件中,独占一行,记录IP地址 <?php //站点统计 header('Content-type:text/html;charset=utf-8'); ...

  6. Virtualbox - 共享文件夹

    在虚拟机中添加共享文件夹——比如主机中的/home/user/download,我想把download文件夹共享给虚拟机用. 步骤:1.在虚拟机中找个挂载的目录,比如 /mnt/d,没有就新建一个目录 ...

  7. javaweb学习总结十一(JAXP对XML文档进行DOM解析)

    一:将内存中写好的xml文件读取到硬盘上 二:DOM方式对xml文件进行增删改查 1:添加节点(默认是在最后的子节点后面添加) @Test // 向元素中添加节点<version>1.0& ...

  8. javaweb学习总结十(xml解析<SAX以及DOM方式>)

    一:XML解析技术 一般我们使用sun公司或者开源组织开发的工具包解析xml效率比较高. 1:jaxp解析xml,jaxp是sun公司开发的解析xml工具包 2:jaxp解析xml代码如下 a:获取d ...

  9. 一个把List<String>转化为以","隔开的字符串的方法

    import java.util.ArrayList; import java.util.List; /** * 集合操作 * @author intrl * @date 2010-12-15 * @ ...

  10. SVN更改用户名和密码

    关于SVN更换用户名和密码的问题,SVN是一个脚本的扩展软件,但是通过客户端更改用户名和密码的时候比较弱智,必须要经过一些操作之后才能出现更改用户名和密码的对话框. 主要的步骤就是“点击鼠标右键选择T ...