CSS相关单位(pt,px,PPI,DPI,em,rem) | GCidea's blog

作者:JerryXia | 发表于 , 阅读 (3)
目录1. 单位介绍2. 换算关系
单位介绍pt:磅(point),绝对单位,印刷行业常用,等于1/72英寸(即0.03526厘米,1英寸 = 2.54厘米)。
px:像素(pixel),相对长度单位,相对于显示器屏幕分辨率而言。
PPI:像素密度(Pixel Per Inch),每英寸所拥有的像素数量。因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度就越高。
DPI:点数密度(Dots Per Inch),每英寸所拥有的点数。是打印机、鼠标等设备分辨率的单位。这是衡量打印机打印精度的主要参数之一,一般来说,该值越大,表明打印机的打印精度越高。比如戴尔显示器U2515的像素间距为0.216毫米,即DPI=117。(2.54/0.0216)但是在本文讨论中,只考虑在显示设备上的情况,不再区分PPI,DPI。
em:相对长度单位。相对于当前对象(父级)内文本的字体尺寸而言。它的值不是固定的,会继承父级元素的字体大小。任意浏览器的默认字体是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625e...阅读全文

通用的HTML文档DOM树遍历函数 | GCidea's blog

作者:JerryXia | 发表于 , 阅读 (4)
目录1. 前言2. 实现2.1. parent函数2.2. sibling函数2.3. child函数
前言  本篇记录《JavaScript权威指南》中提供的通用性的DOM结构遍历函数,这是十分常用的场景,可以获取除了Text节点以外的全部文档节点。
实现parent函数返回元素e的第n层祖先元素,如果不存在则返回null如果n===0;返回e本身;n===1,返回父节点,以此类推123456function parent(e, n) {    if (n === undefined) n = 1;    while(n-- && e) e = e.parentNode;    if (!e || e.nodeType !== 1) return null;    return e;}sibling函数返回元素e的第n个兄弟元素n>0,返回后续元素n<0,返回x先前元素123456789101112131415161718192021function sibling(e,n) {    while(e && n !== 0) {  // If e is not defined w...阅读全文

《JavaScript 权威指南》P147的一处分析 | GCidea's blog

作者:JerryXia | 发表于 , 阅读 (2)
目录1. 情景2. 分析3. 结论
情景  在《JavaScript权威指南 第六版 中文版》P147,讲到稀疏数组时,书中给出如下的分析和例子:  读完后感觉第一个红框和第二个红框中的表述不是很清楚,有些矛盾。于是在chrome浏览器的控制台进行测试,结果如下:
第一个红框对应结果第二个红框对应结果第三个红框对应结果也就是说实测结果与书中第一个红框中的蓝色小框表述相反:0 in a1输出的值是false。分析  以下是《JavaScript: The Definitive Guide》原书第六版对应地方的原文:由此可以看出,原书中只有中文版截图中的第一个红框中的内容,而中文版在翻译时译者加上了后面两段话。猜测可能译者在浏览器中得到的结果也与原书不同,因而补上了两段话加以说明。
结论中文版截图中,第二个红框中的运行结果是译者在新版浏览器环境中测试得出的。即对于最新的情况:当省略数组直接量中的值时,得到的数组也是稀疏数组,并且省略掉的值是不存在的。中文版截图中,第三个红框中的说明表明:经译者测试,在旧版本浏览器中,[1,,3]和[1,undefined,3]是一样的,且对于省略的值...阅读全文

《JavaScript权威指南》中文版P204纠错 | GCidea's blog

作者:JerryXia | 发表于 , 阅读 (4)
目录中文版《JavaScript权威指南》第六版P204中,讲到使用构造函数定义类时,提到“Range()构造函数是通过new关键字调用的(在示例代码的末尾)”,如下图:  
找了半天没看出来示例代码中到底是怎么通过new关键字调用的,于是,查看了一下原书第六版,如下图:  
好吧,原来中文版这里出现了一点小错误,直接将前一页P203示例代码“用原型对象定义方法”中的代码粘贴过来了,怪不得找不到,= =。
从概念上讲,这是有很大不同的。是否使用new关键字创建实例对象,是工厂模式和构造函数模式创建对象的重要区别之一,详细可以参考《JavaScript高级程序设计(第3版)》P145。
...阅读全文