第一章

  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:;padding:;}
table{border-collapse: collapse;border-spacing:;}
fieldset,img{border:}
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:} /*文字排版*/
.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:;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:}
.zoom{zoom:}
.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.多用组合,少用继承

  8.id只能挂一个,class可以挂多个,用空格分隔

  9.上下margin会重合,左右不会

  10。如果不确定模块的上下margin特别稳定,最好不要将它写到模块的类里,而是使用类的组合,单独为上下margin挂用于边距的原子类(如mt10,mb20).模块最好不要混用margin-top和margin-bottom,统一使用margin-top或margin-bottom。

  11.当不同选择符的样式设置有冲突时,会采用权重高的选择符设置的样式。

  12.HTML标签权重是1,class的权重是10,id的权重是100。

  13.如果CSS选择符权重相同,那么样式会遵循就近原则,哪个选择符最后定义,就采用哪个选择符的样式。

  14.为了保证样式容易被覆盖,提高可维护性,CSS选择符需保证权重尽可能低。少用自选择器,多添加class。

  15.CSS sprite:图片翻转技术将多张图片合并为一张,然后利用background-position属性来展示我们需要的部分。

  16.CSS编码风格:推荐一行式的编码风格,可读性稍差,但有效减少CSS文件的行数,提高开发速度,减小CSS文件大小。

  17.CSS hack-IE条件注释;选择符前缀法;样式属性前缀法。

  18.解决超链接访问后hover样式不出现的问题:love hate原则,即l(link)ov(visited)e h(hover)a(active)te。

  19.haslayout:IE浏览器专有的属性,用于CSS的解析引擎,在IE下一些复杂的CSS设置解析起来会出现bug,其原因可能与haslayout没有被自动触发有关;haslayout触发方法:设置width,height的值,设置position为relative,但是会有副作用;更好的解决方法:使用“zoom:1”.

  20.块级元素和行内元素是布局最基本的两种元素,常见的块级元素有div,p,form,ul,ol,li等,常见的行内元素有span,strong,em等。

  21.块级元素可以设置width,height属性。行内元素设置width,height属性无效。

  22.块级元素可以设置margin和padding属性。行内元素水平方向会产生边距,但竖直方向不会。

  23.块级元素对英语display:block,行内元素对应于display:inline。可以通过修改display属性来切换块级元素和行内元素。

  24.display:inline-block  行内的块级元素,拥有块级元素的特点,可以设置长宽,可以设置margin和padding的值,却不独占一行,宽度并不沾满父元素。IE6和IE7不支持,可以通过触发行内元素的halayout实现。

  25.行内元素的水平居中  text-align:center

  26.确定宽度的块级元素的水平居中   {margin-left:auto;margin-right:auto}

  27.不确定宽度的块级元素水平居中:将ul包含在table标签内,对table设置margin-left:auto和margin-right:auto;改变块级元素的display为inline类型,然后使用text-align:center;给父元素设置float,然后父元素设置position:relative 和left:50%,子元素设置position:relative和left:-50%。

  28.父元素高度不确定的文本,图片,块级元素的竖直居中:通过给父容器设置相同上下边距实现。

  29.父元素高度确定的单行文本的竖直居中:通过给父元素设置line-height来实现,line-height值和父元素的高度只相同。

  30.父元素高度确定的多行文本,图片,块级元素的竖直居中:当父元素为td或th时,可以设置vertical-align属性;对支持display:table-cell的IE8H和Firefox用display:table-cell和vertical-align:middle来实现居中,不支持的IE6和IE7,使用特定格式的hack。

  31.main的内容比起sidebar更重要,无论sidebar和main的样式上谁左谁右,在html标签上要保证main的标签在sidebar之前被加载。

第五章

  1.团队合作中,用匿名函数将脚本包起来,可以有效控制全局变量,避免冲突隐患。

  2.添加必要的注释,可以大大提高代码的可维护性,对于团队合作来说,很有必要。

  3.网页中的JavaScrippt从功能上,分为两大部分-框架部分和应用部分。框架部分提供的是对JavaScript代码的组织应用,包括定义全局变量,定义命名空间方法等,它和具体应用无关,每个页面都需要包括相同的框架,所以框架部分的代码在每个页面都相同。应用部分提供的是页面的功能逻辑,不同页面会有不同的功能,不同页面应用部分的代码也不相同。

  4.CSS放在页头,JS放在页尾。

  5.为减小网页大小,缩短网页下载时间,在发布JavaScript之前,先进行压缩。压缩工具有Packer和YUI Compressor。

  6.为了方便维护,源文件叫做head.js 压缩后的文件叫head.js。

  7.JavaScript分层:base层(位于底端,封装不同浏览器下JavaScript的差异,提供统一的接口,可以靠它来完成跨浏览器兼容的工作;扩展JavaScript语言底层提供的接口,让它提供更多更为易用的接口。)common层(中间层,依赖base层提供的接口。common层提供可供复用的组件,和页面功能没有直接关系)page层(位于顶端,和页面里的具体功能需求直接相关,完成页面内的功能需求)

  8.获得DOM节点的三种方法:getElementById,getElementsByTagName,getElementsByClassName。

  9.同一个页面里id只能出现一次,所以如果你的程序需要被多处复用,就一定不能使用id作为JavaScript获得DOM节点的挂钩。

  10.组件需要指定一个根节点,以保持每个组件之间的独立性。

 

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

  1. [已读]HTML5与CSS3权威指南第二版(下)

    去年下半年前公司给买的(老付对我们确实蛮好的),一人挑一本,我当时一定是秀逗了.看的时候就发现,这本书的内容过时严重,即便它是新出不久的第.二.版.其他没什么说的,总之,不推荐看.

  2. Html5与CSS3权威指南 百度云下载

    Html5与CSS3权威指南 百度云下载 链接:http://pan.baidu.com/s/1hq6Dlvm 密码:php3

  3. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  4. 【HTML5 4】《HTML5与CSS3权威指南》 step1 导读

    一.教程重点:以 HTML5和CSS3的新功能和新特性 为导向,辅之以 实战型实例页面 二.内容概况: 第1部分:详细讲解HTML5相关知识,包括 各主流浏览器对HTML5的支持情况. HTML5与H ...

  5. 读《HTML5与CSS3权威指南(上册)》笔记

    第二章 1.内容类型:“text/html”.DOCTYPE声明:<!DOCTYPE html>.指定字符编码:<meta charset="utf-8"> ...

  6. 《HTML5与CSS3权威指南》读书笔记(上册)—HTML5篇

    豆瓣上的评分少且评价不太好,阅读当中发现几处刊物上的小问题,不过线下口碑貌似不错,基本上人手一本 上册五百多页,主讲H5,分为标签,本地存储,离线应用程序,新的API,获取地理位置信息标签包含表单,C ...

  7. 《HTML5与CSS3权威指南》读书笔记(下册)—CSS3篇

    大而全的CSS3 API类型书,并带有一些实用案例讲解,层次分明分类明确,新增技术都做了详情介绍.个人觉得如果在细节和文字表达上再下些功夫会更出色,其中部分内容如:rem.Media Queries网 ...

  8. HTML5与CSS3权威指南笔记案例1

    第1章 <!DOCTYPE html> <meta charset = "UTF-8"> <title> Search </title&g ...

  9. html5+css3 权威指南阅读笔记(三)---表单及其它新增和改良元素

    一.新增元素及属性 1.表单内元素的form属性. html5: <form id="testForm"> <input type=text> </f ...

  10. HTML5与CSS3权威指南.pdf6

    第11章 获取地理位置信息 HTML5为window.navigator对象新增了一个geolocation属性 取得当前地理位置 void getCurrentPosition(onSuccess, ...

随机推荐

  1. The Introduction of Java Memory Leaks

    One of the most significant advantages of Java is its memory management. You simply create objects a ...

  2. OpenCV源码阅读(1)---matx.h---mat类与vec类

    matx.h matx类是opencv中的一个基础类,其位于core模块中,所执行的操作时opencv矩阵和向量的运算.如果熟悉基于matlab的图像处理,那么很容易想到,所有对图像的操作归根结底都是 ...

  3. servlet request.getParamter 有时获取参数为null

    他妈的,参数有时可以获取,有时又不行,折腾了好久,把tomcat换成8.0的,之前用apache-tomcat-7.0.67

  4. Tomcat 自动上传的删除文件

    解决方案: 在 sever.xml 中的 Context 中建一个虚拟路径,指定到服务器硬盘中的其他位置,比如放在 d: 的某个目录下. 同时可以将这个路径映射成为你当前工程名后面带个目录,比如说 / ...

  5. ActiveMQ 集群(1)

    Queue consumer clusters(消费者集群): 简介: 同一个queue,如果一个消费者失效, 那么任何未经确认的消息将会被发送给queue上的其它消费者.如果一个消费者比其它消费者执 ...

  6. maven小试牛刀

    Maven是一个采用纯Java编写的开源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml ...

  7. class_create()

    #define class_create(owner, name)               \({                                              \   ...

  8. Android 获取屏幕尺寸与密度

      android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲 ...

  9. bzoj1064

    很巧妙的题 首先有几种情况 1. 有环 2.两点间有多条路径 3.其他 3.显然最简单,最小是3,最大是每个弱联通块中最长链 2.显然,两点间两条路径的差是答案的倍数 1.出现环,那答案一定是其约数, ...

  10. UVa 11992 (线段树 区间修改) Fast Matrix Operations

    比较综合的一道题目. 二维的线段树,支持区间的add和set操作,然后询问子矩阵的sum,min,max 写完这道题也是醉醉哒,代码仓库里还有一份代码就是在query的过程中也pushdown向下传递 ...