首页 > 代码库 > 读《编写高质量代码-Web前端开发修炼之道》笔记

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

第一章

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

第二章

  1.注释增加代码的可读性;提高重用性--公共组件和私有组件的维护;冗余or精简;前期的构思;制定规范;团队合作

第三章

  1.语义化标签

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

  3.CSS布局:div+css布局  or  (X)HTML+css布局;代码量少;语义清晰。

  4.判断标签语义是否良好:去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性。  CSS裸体日。   FireFox插件-Web Developer

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

  6.语义化标签应该注意:尽可能少地使用无语义标签div和span;   在语义不明显,既可以使用p也可以用div的地方,尽量用p,因为p默认情况下有上下间距,去样式后的可读性更好,对兼容特殊终端有利;   不要使用纯样式标签,例如b,font,和u等,改用css设置,语义上需要强调的文本可以包在strong或em标签里,strong和em有“强调”的语意,其中strong的默认样式是加粗,而em的默认样式是斜体。

第四章

  1.怪异模式:为了确保向后兼容,模拟老式浏览器的行为以防止老站点无法工作;IE对盒模型的解析在怪异模式中,width本身就包括了padding和border的宽度,margin-left(right):auto在怪异模式下也无法正常工作。

  2.触发怪异模式:DTD文档类型定义

  3.组织CSS的方法:base.css(被所有页面引用,与具体UI无关,力求精简和通用,具有高度可移植性,不同风格的网站可以使用同一个base,相对稳定,不需要维护)+common.css(提供组件级的css类,尽可能将内部实现封装,对尽可能会经常变化的部分提供灵活的接口,最好一人负责,统一管理)+page.css(高度重用的模块,每个页面都有自己的page)

  4.推荐的base.css

/*css reset*/body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse: collapse;border-spacing: 0;}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style: normal;font-weight: normal}ol,ul{list-style: none}caption,th{text-align: left}h1,h2,h3,h4,h5,h6{font-size: 100%;font-weight: normal}q:before,q:after{content: ‘‘}abbr,acronym{border:0}/*文字排版*/.f12{font-size: 12px}.f13{font-size: 13px}.f14{font-size: 14px}.f16{font-size: 16px}.f20{font-size: 20px}.fb{font-weight: bold}.fn{font-weight: normal}.t2{text-indent: 2em}.lh150{line-height: 150%}.lh180{line-height: 180%}.lh200{line-height: 200%}.unl{text-decoration: underline;}.no_unl{text-decoration: none;}/*定位*/.tl{text-align: left}.tc{text-align: center}.tr{text-align: right}.bc{margin-left: auto;margin-right: auto;}.fl{float: left;display: inline}.fr{float: right;display: inline}.cb{clear: both}.cl{clear: left}.cr{clear: right}.clearfix:after {content: “.”;display:block;height:0;clear:both;visibility:hidden;} .clearfix {display: inline-block;}* html .clearfix {height: 1%;} .clearfix {display: block;}.vm{vertical-align: middle}.pr{position: relative}.pa{position: absolute}.abs-right{position: absolute;right: 0}.zoom{zoom:1}.hidden{visibility: hidden}.none{display: none}/*长度高度*/.w10{width:10px}.w20{width:20px}.w30{width:30px}.w40{width:40px}.w50{width:50px}.w60{width:60px}.w70{width:70px}.w80{width:80px}.w90{width:90px}.w100{width:100px}.w200{width:200px}.w250{width:250px}.w300{width:300px}.w400{width:400px}.w500{width:500px}.w600{width:600px}.w700{width:700px}.w800{width:800px}.w{width: 100%}.h50{height: 50px}.h80{height: 80px}.h100{height: 100px}.h200{height: 200px}.h{height: 100%}/*边距*/.m10{margin:10px}.m15{margin:15px}.m30{margin:30px}.mt5{margin-top:5px}.mt10{margin-top:10px}.mt15{margin-top:15px}.mt20{margin-top:20px}.mt30{margin-top:30px}.mt50{margin-top:50px}.mt100{margin-top:100px}.mb5{margin-bottom:5px}.mb10{margin-bottom:10px}.mb15{margin-bottom:15px}.mb20{margin-bottom:20px}.mb30{margin-bottom:30px}.mb50{margin-bottom:50px}.mb100{margin-bottom:100px}.ml5{margin-left:5px}.ml10{margin-left:10px}.ml15{margin-left:15px}.ml20{margin-left:20px}.ml30{margin-left:30px}.ml50{margin-left:50px}.ml100{margin-left:100px}.mr5{margin-right:5px}.mr10{margin-right:10px}.mr15{margin-right:15px}.mr20{margin-right:20px}.mr30{margin-right:30px}.mr50{margin-right:5px}.mr100{margin-right:100px}.p10{padding:10px;}.p15{padding:15px;}.p30{padding:30px;}.pt5{padding-top:5px}.pt10{padding-top:10px}.pt15{padding-top:15px}.pt20{padding-top:20px}.pt30{padding-top:30px}.pt50{padding-top:50px}.pb5{padding-bottom:5px}.pb10{padding-bottom:10px}.pb15{padding-bottom:15px}.pb20{padding-bottom:20px}.pb30{padding-bottom:30px}.pb50{padding-bottom:50px}.pb100{padding-bottom:100px}.pl5{padding-left:5px}.pl10{padding-left:10px}.pl15{padding-left:15px}.pl20{padding-left:20px}.pl30{padding-left:30px}.pl50{padding-left:50px}.pl100{padding-left:100px}.pr5{padding-right:5px}.pr10{padding-right:10px}.pr15{padding-right:15px}.pr20{padding-right:20px}.pr30{padding-right:30px}.pr50{padding-right:50px}.pr100{padding-right:100px}

  5.拆分模块:模块与模块之间尽量不要包含相同的部分,如果有相同部分,应将它们提取出来,拆分成一个独立的模块;模块应在保证数量尽可能少的原则下,做到尽可能简单,以提高重用性。

  6.CSS命名:骆驼命名法用于区别不同单词,划线用于表明从属关系。

  7.多用组合,少用继承

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