SlideShare a Scribd company logo
1 of 33
Topic

• 批判式思维-(IE6双边距)

• 还原本质-(图片垂直居中)

• 总结归纳-(清除浮动,hasLayout,BFC,)
IE bug 数据

• 一般bug46个


• 与haslayout有关的5个


• 因属性不支持的6个


• 导致页面崩溃的1个


                       数据杢源:http://haslayout.net/css/
我们可能对IE6双边距的认识



•   在同方向设置margin和float值,将导致边距双倍

•   对同方向对块级元素上设置margin和float值,将导致边
    距双倍
20        A       150         B       150         C



IE6:


     40       A         160       B         150       C
如果:一个块级元素向左/右浮动,且其设置的左/右边距大于其至容器的左侧内
  边界的距离

那么:该元素实际的左边距 = 设置的左边距 * 2 - 左边界至容器的距离,
否则:该元素实际的左边距 = 设置的左边距




40   A     160    B    150    C
类似问题

•   文本设置height和line-height,且两者相等,某些浏览器无法垂直居中
Img是一个什么元素?
行内盒子(line box)



              pic

Painful egg
                    基线(baseline)


                    下部( descender )
一种常见的垂直居中方法
为何是0.873?
在ie6&ie7下,对文字设置font-size
可否设置与父级height相等的line-height实现垂直居中?
line-height方法测试结果


•   标准模式下, 图片前后有回车符,仅IE6不行;

•   标准模式下, 图片前后无回车符, IE6&IE7不行;

• 接近标准模式 下,图片前后有回车符,仅IE7可以;

• 接近标准模式下, 图片前后无回车符,都不可以;

• 在两种模式下,2张图片并排放置,且其中1张的高度等于
    父级容器高度,不管前后有无回车,全都可以。
用伪类实现图片垂直居中
Img是一个什么元素?
类似问题




• li是个什么元素?
关于浮动



•为什么要清楚浮动?


•清楚浮动的方法有哪些?


•这些方法的本质是什么?
本质在于触収hasLayout和BFC

  (除添加额外标签或内容的方法)
hasLayout与BFC

         Haslayout                              块级格式化环境 (Blocking format context)

针对的浏览器   Win IE5.5/6/7                          IE8+/FF/CH/SA..

触収条件     • float不为none                          •float不为none
         •display: inline-block                 •display:设为‘inline-block’,‚table-cell‛或为
         •position: absolute                    "table-caption"
         •height: (除 auto 外任何值)                 •position为absolute或fixed
         •width: (除 auto 外任何值)                  •overflow不为visible
         •writing-mode(与父级相反)
         •zoom: (除 normal 外任意值)


         Ie7:
         min-height: (任意值)
         min-width: (任意值)
         max-height: (除 none 外任意值)
         max-width: (除 none 外任意值)
         overflow: (除 visible 外任意值,仅用于块级元素)
         overflow-x: (除 visible 外任意值,仅用于块级元素)
         overflow-y: (除 visible 外任意值,仅用于块级元素)
         position: fixed
‚外围容器用float清除内部元素浮动的本质在于:float触収了BFC‛




     http://www.yuiblog.com/blog/2010/05/19/css-101-block-formatting-contexts/
‚hasLayout 和BFC的渲染模式很相近,例如:可以清楚浮动等‛




     http://www.yuiblog.com/blog/2010/05/19/css-101-block-formatting-contexts/
是否是必须的?




         缺失反斜杠‚‛

如果父级元素设置height且overflow:hidden
• 两者采用不用的渲染引擎,且IE mac符合标准。

• IE mac上无hasLayout的概念

• IE win中设置width,height触収haslayout的方法对Ie
  mac有不利影响



          http://www.satzansatz.de/cssd/onhavinglayout.html
• 1997年,苹果电脑和微软同意将IE for Mac成为Mac OS的默认
 浏览器。

• 2003年,苹果电脑开収自己 的浏览器Safari

• 2003年6月13日,微软宣布终止开収Internet Explorer for
 Mac。

• 2005年12月31日,微软终止对IE for Mac的支援,

• 2006年1月31日,微软不再提供IE for Mac下载,其地位被
 Safari取代。




          http://zh.wikipedia.org/wiki/Internet_Explorer_for_Mac
系统:win7/xp/mac
编码:utf-8/gb-2312
浏览器模式:标准模式/接近标准模式
浏览器类型:IE6(XP)/IE7/IE8/IE9/Chrome18.0.1025.152 m/Safari 4.05/Opera11.62
BFC阻值外边距叠加


margin-top:10px
                              margin-top:10px

    margin-top:10px
                                   margin-top:10px




 margin-bottom:10px            margin-bottom:10px




   margin-top:10px
                                 margin-top:10px
我要感谢的
Q&A

Thank You!



           仲金龙
  mail:timezhong@gmail.com
   blog:www.wheattime.com
参考资料

•   http://www.sam-i-am.com/work/sandbox/css/mac_ie5_hack.html

•   http://perishablepress.com/new-clearfix-hack/comment-page-1/#comments

•   http://w3help.org/zh-cn/kb/010/

•   http://w3help.org/zh-cn/causes/RX1001

•   http://www.wheattime.com/images-tables-and-mysterious-gaps.html

•   http://drupal.org/node/444228

•   http://www.positioniseverything.net/easyclearing.html

•   http://zh.wikipedia.org/wiki/Internet_Explorer_for_Mac#.E7.8D.A8.E6.9C.89.E7.89.B9.E6.
    80.A7

More Related Content

Similar to 再回首重构 仲金龙(麦时) 20120426

2011新版首页总结 技术篇
2011新版首页总结 技术篇2011新版首页总结 技术篇
2011新版首页总结 技术篇
传贵 谢
 
冒泡浏览器介绍
冒泡浏览器介绍冒泡浏览器介绍
冒泡浏览器介绍
Ocean-Info
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异
cleverpig
 
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
ilovejoomla
 
前端基础知识回顾
前端基础知识回顾前端基础知识回顾
前端基础知识回顾
Wu tianhao
 
Keep web accessibility in mind
Keep web accessibility in mindKeep web accessibility in mind
Keep web accessibility in mind
solodxg
 
CSS 培训
CSS 培训CSS 培训
CSS 培训
S S
 
Qq.com前端架构实践与思考
Qq.com前端架构实践与思考Qq.com前端架构实践与思考
Qq.com前端架构实践与思考
greengnn
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa126
 
Pro Css Box Model : Margin & Padding
Pro Css Box Model : Margin & PaddingPro Css Box Model : Margin & Padding
Pro Css Box Model : Margin & Padding
主 堂
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
pan weizeng
 

Similar to 再回首重构 仲金龙(麦时) 20120426 (20)

2011新版首页总结 技术篇
2011新版首页总结 技术篇2011新版首页总结 技术篇
2011新版首页总结 技术篇
 
郑焕义 重温网站重构
郑焕义 重温网站重构郑焕义 重温网站重构
郑焕义 重温网站重构
 
冒泡浏览器介绍
冒泡浏览器介绍冒泡浏览器介绍
冒泡浏览器介绍
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异
 
Joomla! 網站規劃 簡報-i love joomla! 5月小聚
Joomla! 網站規劃 簡報-i love joomla! 5月小聚Joomla! 網站規劃 簡報-i love joomla! 5月小聚
Joomla! 網站規劃 簡報-i love joomla! 5月小聚
 
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
 
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
 
前端基础知识回顾
前端基础知识回顾前端基础知识回顾
前端基础知识回顾
 
Keep web accessibility in mind
Keep web accessibility in mindKeep web accessibility in mind
Keep web accessibility in mind
 
移动端Web开发性能优化实践
移动端Web开发性能优化实践移动端Web开发性能优化实践
移动端Web开发性能优化实践
 
CSS 培训
CSS 培训CSS 培训
CSS 培训
 
Qq.com前端架构实践与思考
Qq.com前端架构实践与思考Qq.com前端架构实践与思考
Qq.com前端架构实践与思考
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
 
Pro Css Box Model : Margin & Padding
Pro Css Box Model : Margin & PaddingPro Css Box Model : Margin & Padding
Pro Css Box Model : Margin & Padding
 
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學
 
Bootstrap 學習筆記 by 黃禹翔
Bootstrap 學習筆記 by 黃禹翔Bootstrap 學習筆記 by 黃禹翔
Bootstrap 學習筆記 by 黃禹翔
 
SVG 初心者分享 @ PIXNET SmallTalk
SVG 初心者分享 @ PIXNET SmallTalkSVG 初心者分享 @ PIXNET SmallTalk
SVG 初心者分享 @ PIXNET SmallTalk
 
Introduction to Nand Flash interface (chinese)
Introduction to Nand Flash interface (chinese)Introduction to Nand Flash interface (chinese)
Introduction to Nand Flash interface (chinese)
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 

More from time zhong (6)

一起移动吧 交互篇
一起移动吧 交互篇一起移动吧 交互篇
一起移动吧 交互篇
 
一起移动吧 基础篇
一起移动吧 基础篇一起移动吧 基础篇
一起移动吧 基础篇
 
被解放的Gpu 麦时
被解放的Gpu 麦时被解放的Gpu 麦时
被解放的Gpu 麦时
 
网站字体渲染 麦时
网站字体渲染 麦时网站字体渲染 麦时
网站字体渲染 麦时
 
网站字体渲染-麦时
网站字体渲染-麦时网站字体渲染-麦时
网站字体渲染-麦时
 
我的一天 仲金龙(麦时)
我的一天 仲金龙(麦时)我的一天 仲金龙(麦时)
我的一天 仲金龙(麦时)
 

再回首重构 仲金龙(麦时) 20120426