读《编写高质量代码-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.多用组合,少用继承
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。