最近老大给我们买来一些技术方面的书籍,其实很少搬着一本书好好的完整的看完过,每每看电子档的,也是打游击式的看看这章,瞅瞅那章,在那5本书中挑了一本比较单薄的《编写高质量代码web前端开发修炼之道》,看完觉得不错,它从一个整体架构上来说明如何编写高质量代码,而细处也着重说明一些比较重要的技术点,给人一种从高处俯瞰web开发、很完整的感觉,在这感谢老大,谢谢他让我们不停的进步着。下面是我看书过程中的笔记。

第一章:从网站重构说起

没什么好说的,从一个糟糕的老网页实例说明需要将web的结构,样式和行为分离开来,既html文件,css文件,js文件。

总结:Html标签只负责承载内容,样式交给css,行为交给Javascript。做到“精简,重用,有序”。

【相对我以前做的项目,我经常会把一些click事件,mouseover事件直接写进html标签中,其实更好的做法应该是放到js中去,直接Document.getelementbyid("").onclick(){},或者用jquery的click事件关联】

第二章:团队合作

欲精一行,必先通十行

“经常听到做前端开发的朋友抱怨要学的东西太多,东学一点,西学一点,什么都会,但是都不精,于是有人认为‘通十行不如精一行’,而在前端领域,这句确行不通,对于前端来说,你不通十行,就无法精一行。” 看到作者的这句话,我总算有点成就感。O(∩_∩)O~

这章主要说明前端需要了解的语言,html, css要精通、及其重要,js,及架构div+css,RIA富媒体应用,jquery,YUI,ps,AI设计等等

团队之间的开发要注意:

1:增加代码可读性----注释

2:重用性---公共组件和私有组件的维护

3:冗余和精简的矛盾---选择集中还是选择分散   (合理的前端架构中css和js都会提取公共组件,如何组织需要权衡,完美的解决方案不存在,只能在冗余和精简中尽量找到最佳平衡点)

4:前期的构思很重要。

5:制定规范

6:团队合作最大难度不是技术,而是人

第三章:高质量的Html

总算来了点实际的用得着的技术,呵呵

1)标签的语义:大家都懂的。

2)标签布局

table布局网页的缺点:1:代码量大,结构混乱。2:标签语义不明确,对搜索引擎不友好

css布局(div+css):弱化了标签的布局能力,将布局完全放到样式中去控制,而标签重新恢复了原来语义的作用。它与table布局相比具有代码量少,结构精简,语义清晰等优点。

总结:在布局的过程中,Html结构才是重点,css是用来修饰结构的,正确的做法是:先确定html,确定语义的标签,再来选用合适的css.

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

在做完一个页面后,去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性

"css裸体日"这个日子的目的就是为了提醒大家选用合适的HTML标签的重要性。------------显然我是第一次听说哈。

4)标题和内容的实例

这个实例用的是Html中无语义的标签-----div分隔 和span范围 来架构的, 而正确的做法一般使用h2,p,a来架构

需要特别说明的是:当页面内标签无法满足设计需要时,才会适当添加div和span等无语义的标签来辅助实现。

5)表单和表格

表单

一般需要直接submit的内容需要放置在表单内,为了有清晰的语义,一般表单域要用fieldset标签包起来,并用legend标签说明表单的用途,若不想要它自带的默认样式,可将border:none;不想显示设置 display:none,以此来兼顾语义和设计两方面的需求。

每个input标签对应的说明文本都需要使用label标签,并通过为input设置id属性,在label中设置“for=someId”来将对应的label和input关联起来。

表格

虽然在css布局中table不推荐用来布局,但它在二维数据展示方面确实最好的选择。

一般用table,我常使用它的<table><tr><th><td>标签,在有需要的时候还可以用他的其他标签,表格标题用caption,表头用thead包围,主体部分tbody包围,尾部tfoot包围

总结:语义化标签应注意的一些问题

1:尽可能少地使用无语义标签div和span

2:语义不明显,既可用P也可用div的地方,建议尽量用p,因为有上下间距,可读性好。(还是视情况而定)

3:不要使用纯样式标签,如:b,font,u等 ,直接写进css设置。

转载请注明出处

原文地址:http://www.cnblogs.com/Joans/archive/2012/09/11/2679074.html

最新文章

  1. es6 新特性2
  2. linux 下 systemd-udevd 服务解析
  3. Google Gson 使用简介
  4. python学习之路(一)屌丝逆袭之路
  5. web双机热备添加心跳检测ip的时候填了网关导致外网ip不能上网
  6. (easy)LeetCode 191.Number of 1 Bits
  7. GSS3 SPOJ 1716. Can you answer these queries III gss1的变形
  8. linux下安装memcached过程
  9. iOS应用拨打电话
  10. 一步一步重写 CodeIgniter 框架 (7) —— Controller执行时将 Model获得的数据传入View中,实现MVC
  11. 千万别用模板给的list.size()巨坑
  12. python 机器学习 决策树
  13. SoupUI安装
  14. Java开源生鲜电商平台-系统简介
  15. ImportError: No module named MySQLdb&lt;/module&gt;
  16. 《Effective Java 第三版》目录汇总
  17. Ubuntu下pdf和图片互转
  18. Behavior Tree 用 Lua 实现一个最简行为树
  19. public private protected extends
  20. Confluence 6 修改一个空间从归档到当前

热门文章

  1. 二,python第一个程序
  2. Angular23 loading组件、路由配置、子路由配置、路由懒加载配置
  3. 447. Number of Boomerangs 回力镖数组的数量
  4. Python3.7安装Django
  5. c语言学习笔记 break语句
  6. 13.JOIN
  7. Vue.js路由组件
  8. 浅谈Android内存管理
  9. 几个SQL小知识(转)
  10. txt文本怎么去除重复项