口碑网UED团队

06月 21 08年

口碑网首页前端技术分享系列之一,清除浮动

Published by 大米

前端开发, css  10 条回复 »

借口碑网首页改版之际,抽离一些自认为这次在首页前端开发中一些有用的东西拿出来和大家探讨一下。口碑网首页改版比较勤快,也不知道这版首页会持续多久,啥时候改版的话,本系列文章自动终止。

今天说说清除浮动,clear float。

常规清除浮动,只要在需要清除的那个元素加上clear:left、clear:right或者clear:both

但是有两个情况下,靠以上这种简单处理不行。

第一种情况,父元素有border或者background等视觉体现,而子元素都是float元素的时候,需要对子元素结束的时候对float做清理,否则视觉显示不出来。第二种情况,也是基于视觉的考虑,第一个元素的子元素做了一些浮动,紧接着的第二个元素有border要显示,但是如果直接在自己身上加clear,会导致第一个元素的padding-bottom后者本身的margin-top失灵,而因为要显示border,不好用padding-top来控制与第一个元素的间距。这些时候可以用这个经典的清除浮动class加在父元素上来清除自身的浮动:

.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    font-size: 0;
    clear: both;
    visibility: hidden;
}
.clearfix {zoom:1;}

第一种情况的示例看下图:

2008-06-21_005625.png

第二种情况的示例看下图:

2008-06-21_010030.png

你可以访问口碑网首页使用firebug展开dom节点找到相应的位置看。

原版(网上搜索clearfix到处都是)对IE/MAC提供了支持,并且用height:1%对IE进行hack。我对那部分做了修改,用了zoom:1来取代。

另外最近不小心看到网上一个新方法,这样子也行…

.clearfix {
overflow:auto;
zoom:1;
}

05月 07 08年

再谈iframe自适应高度

Published by 大米

前端开发  33 条回复 »

这贴比较长,没有耐性的朋友请直接拖到帖子末尾的代码示例,或者直接去玩我提供的Demo。

Demo页面:主页面 iframe_a.html ,被包含页面 iframe_b.htmiframe_c.html

下面开始讲:

通过Google搜索iframe 自适应高度,结果5W多条,搜索iframe 高度自适应,结果2W多条。
我翻了前面的几十条,刨去大量的转载,有那么三五篇是原创的。而这几篇原创里面,基本上只谈到如何自适应静的东西,就是没有考虑到JS操作DOM之后,如何做动态同步的问题。另外,在兼容性方面,也研究的不彻底。

这篇文章,希望在这两个方面再做一些深入。

可能有人还没接触到这个问题过,先说明一下,什么是自适应高度吧。所谓iframe自适应高度,就是,基于界面美观和交互的考虑,隐藏了iframe的border和scrollbar,让人看不出它是个iframe。如果iframe始终调用同一个固定高度的页面,我们直接写死iframe高度就可以了。而如果iframe要切换页面,或者被包含页面要做DOM动态操作,这时候,就需要程序去同步iframe高度和被包含页的实际高度了。

顺便说下,iframe在迫不得已的时候才去用,它会给前端开发带来太多的麻烦。

传统做法大致有两个: 继续阅读本篇日志 »

04月 28 08年

如何编写兼容各主流邮箱的HTML邮件

Published by 大米

前端开发, css  19 条回复 »

几乎每个会员制网站都需要通过后台发送邮件来与会员进行沟通,如注册确认、营销推广。这些由站方发给会员的信件,往往纯文本格式已不能满足界面和交互的要求,这时候我们就需要发送HTML页面。由于HTML邮件不是独立的HOST在本站的页面,是寄人篱下的。所以编写HTML邮件与编写HTML页面有很大的不同。因为,各面向网民的主流邮箱都或多或少的会对它们接收到的HTML邮件在后台进行过滤。毫无疑问,JS代码是被严格过滤掉的,包括所有的事件监听属性,如onclick、onmouseover,这是基于邮件安全性的考虑。不仅如此,CSS代码也会被部分过滤。本人要讲的就是如何编写不被各大主流邮箱过滤的,能正常显示的HTML邮件。
继续阅读本篇日志 »