
floatDiv插件在经历了项目两个月后,终于接受住了考验,虽然期间发现了几个小BUG,可能它并不是很完善,并且不能够满足各方的需求。但是它终于还是覆盖了绝大部分的功能要求。而之后也一一修补了已经发现的几个BUG。
最近在看《高性能javascript》(这是一本好书,推荐各位看官阅读)的时候,让我对性能有了一些新的认识,所以这次重新梳理了一下插件整个流程,可能在使用的时候,并不能完全体验出来,因为插件本身就很小巧了,但是,我想说的是,它的性能却是实实在在地提升了。
^^^^^^^^^^^^^^^^^ 看,那忧伤的分割线 ^^^^^^^^^^^^^^^^^
本次更新及优化如下:
⊙改进:窗口滚动(scroll)及窗口改变(resize)改为分流模式(延时响应),更省资源;
⊙改进:清理变量;
⊙改进:针对IE6 select bug的改进 — 改进iframe模式下select会闪的问题;
⊙改进:解决初始小窗口加载,最大化后遮罩宽度不能铺满的Bug;
⊙改进:解决非滚动模式下层定位不准确的问题;
⊙改进:关闭句柄支持CSS选择器语法;
⊙改进:梳理优化变量缓存;
⊙改进:参数名称简化,增加后续链式支持;
⊙改进:遮罩性能优化;
^^^^^^^^^^^^^^^^^ 看,那忧伤的分割线 ^^^^^^^^^^^^^^^^^
如果您有什么好的建议或者更优雅的实现技巧,欢迎在评论处提出来,感激之至。
下面给出Demo及插件下载地址:
查看演示Demo
插件下载:压缩版( jquery.floatDiv-2.4.min.js ) (6KB)
开发版( jquery.floatDiv-2.4.develop.js ) (13KB)
^^^^^^^^^^^^^^^^^ 看,那忧伤的分割线 ^^^^^^^^^^^^^^^^^
2012.05.09更新:
插件版本更新至2.5,新增过渡效果设置,以及更加精细的流程控制,本版参数如下:
继续阅读:【更新 v2.5】绝对定位层解决方案—jQuery插件之floatDiv 2.5发布! »

标准参考
根据W3C CSS2.1规范第8.3节中的描述,边距属性设置了一个框的边距区的宽度。‘margin’ 缩写属性设置所有四边的边距,而其它的边距属性( ‘margin-top’ ,‘margin-right’ , ‘margin-bottom’ 及 ‘margin-left’ )只设置它们代表的那一边的边距。
边距属性的取值可以是下面值之一:
- <length> 指定一个固定的宽度。
- <percentage> 百分比的计算基于生成的框的包含块的宽度。
- auto 其表现细节请参见宽度和边距的计算一章。
边距属性允许有负值,不过可能有与实现相关的限制。
问题描述
IE6 IE7 IE8(Q) 负边距 (margin) 导致元素溢出 hasLayout 容器时显示异常。
造成的影响
严重的情况下会破坏整体布局。
受影响的浏览器
继续阅读:IE6 IE7 IE8(Q) 负边距 (margin) 导致元素溢出 hasLayout 容器时显示异常 »

一、现象描述
真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子:
<input /> <input type="submit" />
间距就来了~~

我们使用CSS更改非inline-block水平元素为inline-block水平,也会有该问题:
.space a {
display: inline-block;
padding: .5em 1em;
background-color: #cad5eb;
}
<div>
<a href="##">惆怅</a>
<a href="##">淡定</a>
<a href="##">热血</a>
</div>

您可以狠狠地点击这里:inline-block元素间间距demo
这种表现是符合规范的应该有的表现(如果有人认为是bug就太()ay ()oy 了)。
不过,这类间距有时会对我们布局,或是兼容性处理产生影响,需要去掉它,该怎么办呢?以下展示N种方法(欢迎补充)!
二、方法之移除空格
元素间留白间距出现的原因就是标签段之间的空格,
继续阅读:去除inline-block元素间间距的N种方法 »

近日,有人在Quora上 提了一个问题:“YUI3 如何提升其影响力?”,这个问题引起社区的热议。而本次讨论的最大亮点在于jQuery之父John Resig和YUI3架构师Nicholas C. Zakas也参与讨论之中,同时Nicholas C. Zakas对John Resig的某些观点进行了反驳。两位大佬直接对话实属难得,辩论暗涌澎湃精彩至极。现将两位大佬的辩论内容分享于此,希望对有志于开发“库/框架”的同 仁们有所启迪。
如何提升YUI的影响力,John Resig通过回答下面两个的问题,表达了自己的观点:
1. YUI应当如何改进,以便更多的人来使用?
2. YUI如何提升才能改善和jQuery的竞争力?
在回答第一个问题时,他表示:
| 和其他JS库相比,YUI的确很赞,但由于它的域名分散、代码库过多且引入方式太多,这就导致了YUI无法更多的去占领市场。 |
在假设目前的 YUI3 版本已经“足够优秀”,YUI 文档和论坛也已经足够完善,足以吸引更多的用户来使用YUI3的情况下,他提议把分散的域名合并成一个;把多代码库合并成一个代码库;把YUI 的引入方式缩减至一种。简单讲,YUI项目应当保留一个整体的方向性,重点太分散,则会事与愿违。
YUI3 架构师Nicholas C. Zakas对John Resig的观点表示十分赞同,他说:
继续阅读:一场关于YUI3/jQuery的精彩辩论 »

z-index在ie下缺省为:z-index:0; 而FF下则缺省为:z-index:auto;
(这个结论已然在蓝色的《补遗<无法冲破的等级> 》这个帖子中得出。而本文的讨论也是对《补遗》的总结及延伸。 )
你可以借助ie developer tool和firebug等工具进行测试查看z-index值。需要注意的是:z-index值须在设置position:relative/absolute/fixed之后方才生效。
正是IE/FF下这一点区别导致ie,ff下z值的不同表现。
注意:此处所说的z值区别于z-index,它指的是z轴层叠等级(stack level),表示垂直于显示屏方向上的各层的层叠顺序。不止z-index一个属性会影响到z轴层叠等级的大小(本文对其他属性的影响暂不做讨论,并在本文中的测试已排除其他属性的影响,其他属性将不会影响本文的研究)。
继续阅读:定位元素间的Z值比较及z-index在IE/FF下默认值的影响 »

CSS兼容性一直是大家头疼的问题,IE6、IE7和FF已经让大家够呛,在52CSS.com以前的文章中,很多这方面的知识介绍。今天向大家介绍IE8的CSS hack。
IE8正式版发布以来,一直在找一种区别IE8正式版的方法.在百度搜索”IE8 hack”有19万多个结果,google搜索则有243万多个结果,但几乎没有看到任何一种有效的方法是针对IE8正式版的,要知道IE8正式版和测试版在hack上是有很大区别的.而且网络上的方法几乎都是出自一两个人之手,最有名的可能要数那张linxz.cn的hack图片了,这张图片估计被国内的网友转载了几十万次,但目前这张图里的方法对IE8正式版是无效的.
经过分析和总结网友们的各个无效方法,有了下面的行之有效的解决方案,或许以后还会有更好更简单的hack,但就目前来说这个方法可以解决燃眉之急.
不再讲废话,来(以下的IE8均指IE8正式版,版本号:8.0.6001.18702):
"\9" 例:"margin:0px auto\9;".这里的"\9"可以区别所有IE和FireFox.
"*" IE6、IE7可以识别.IE8、FireFox不能.
"_" IE6可以识别"_",IE7、IE8、FireFox不能.
如此,就可以完全区分开IE6、IE7、IE8、FireFox了.
什么?还是不知道怎么区分.好吧,来看个例子:
继续阅读:CSS资料集:IE8 CSS hack »

JavaScript面试题要求:以下题目必须从一至四题中,选出三道题,使用原生代码实现,不可使
用任何框架,第五题为选作题。
一、 在页面的固定区域内实现图片的展示
1. 每点击一次右箭头,图片区域向左滚动出一张图片,反之相同;
2. 当发现图片滚动到末尾时,响应的箭头变成不可点击状态;
3. 鼠标在图片区域内滑动滚轮,图片会随着鼠标滚轮的方向进行响应的滚动;
二、 用 js、html、css实现一个弹出提示控件:
1. 分别实现类似于系统的 alert、confirm、prompt对话框;
2. 对话框大小根据提示内容进行自适应(有一个最小宽高),默认出现在页面的水平垂直居中的位置;
3. 对话框可拖动;
4. 对话框中的事件模拟系统对话框的事件(例如:alert 对话框,点击确定按钮,对话框消失);
5. 解决IE6被 select控件遮挡的问题;
继续阅读:[面试题] 人人网javascript面试题 »