Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Css float

1,515 views

Published on

the inside story of css float

Published in: Technology
  • Be the first to comment

Css float

  1. 1. The Inside Story Of CSS Float<br />
  2. 2. 浮动的初始概念<br /> 你可能对浮动元素的概念已经有所了解,浮动不完全是定位,也不是正常的流布局。<br />http://www.swordair.com/blog/2010/08/415<br /> CSS 规定:a. 任何元素都可以浮动;b. 浮动不能被继承;<br />浮动定义:浮动是处于文档流中的元素,脱离了源文档流,通常是左(右),元素浮动之后,其周围的元素将自动补齐其留下来的空间<br />浮动属性:left | right | none | inherit<br />http://www.smashingmagazine.com/2007/05/01/css-float-theory-things-you-should-know/<br />一个浮动的例子:<br /><div class="box"> <br /> <img class="fl" src="beauty.png" alt=" /> <br /> <p><br /> The concept of floats is probably one of the… <br /> </p> <br /> </div><br />
  3. 3. 浮动元素<br /> 用 CSS 浮动元素时,会出现一些有意思的问题<br /> 1. 浮动元素会脱离原先的文档流;<br /> 2. 浮动元素的外边距不会合并;<br /> 3. 如果要浮动一个非置换元素,必须为其声明一个 width 属性<br /> 4. 行内元素设置浮动之后,将自动转化为块级元素。<br />还是刚才的例子:<br /><div class="box"> <br /> <img class="fl" src="beauty.png" alt=" /> <br /> <p><br /> The concept of floats is probably one of the… <br /> </p> <br /> </div><br />
  4. 4. 不浮动<br />除了 left 和 right 之外,float 属性还有一个值,也就是默认值 none;<br />这样的设置似乎有些多余,因为要让一个元素不浮动,最直接的方式就是不声明 float 。<br />不过他确实很重要,如果没有这个值,所有的元素都会以某种方式浮动。<br />而且,当你需要重置元素 float 属性的时候,就会用到。<br />一个的例子:<br /><div class="box"> <br /> <img class="nfl" src="beauty.png" alt=" /> <br /> <p><br /> The concept of floats is probably one of the… <br /> </p><br /> <p><br /> The concept of floats is probably one of the… <br /> </p> <br /> </div><br />
  5. 5. 浮动的详细内幕<br />为了更好的理解浮动的详细,我们需要建立包含块(containing block)的概念。<br />http://www.yuiblog.com/blog/2010/05/19/css-101-block-formatting-contexts/<br />这个很重要。浮动元素的包含块是其最近的块级祖先元素。<br />下面的例子当中,浮动的 img和 p 元素的包含块就是 div.box<br />一个的例子:<br /><div class="box"> <br /> <img class="nfl" src="beauty.png" alt=" /> <br /> <p><br /> The concept of floats is probably one of the… <br /> </p><br /> <p><br /> The concept of floats is probably one of the… <br /> </p> <br /> </div><br />
  6. 6. 浮动的详细内幕<br />俗话说:不规矩,无以成方圆。浮动也是如此。<br />有一系列的规则控制着浮动元素的摆放。<br />一、浮动元素外边界不能超出其包含块的内边界。<br />一个的例子:<br /><div class="box"> <br /> <img class="nfl" src="beauty.png" alt=" /> <br /> <p><br /> The concept of floats is probably one of the… <br /> </p><br /> <p><br /> The concept of floats is probably one of the… <br /> </p> <br /> </div><br />margin<br />padding<br />①<br />②<br />
  7. 7. 浮动的详细内幕<br />二、浮动元素的外边界必须是源文档中之前出现的浮动元素的外边界,除非后出现浮动元素的顶端在先出现浮动元素的底端下面。<br />这条规则防止了浮动元素的彼此覆盖。因此,所有的浮动内容都是可见的,不用担心浮动元素之间相互重叠,这使得浮动很安全<br />margin<br />padding<br />①<br />②<br />③<br />
  8. 8. 浮动的详细内幕<br />三、左浮动元素的右外边界不会在其右浮动元素的左外边界的右边。<br />右浮动元素的左外边界不会在其左边任何浮动元素的右外边界的左边。<br />这条规则进一步防止了浮动元素的重叠<br />margin<br />padding<br />①<br />②<br />
  9. 9. 浮动的详细内幕<br />四、一个浮动元素的顶端不能比其父元素的内顶端更高,如果一个浮动元素在两个合并外边距之间,放置这个浮动元素时就好像在两个元素之间有一个块级元素。<br />这条规则前半部分防止了浮动元素的浮动到文档的顶端。<br />而后半部分则防止了所有的浮动元素一起向上浮动到父级元素的顶端。<br />margin<br />padding<br />①<br />②<br />③<br />
  10. 10. 浮动的详细内幕<br />五、浮动元素的顶端不能比之前所有浮动元素或块级元素的顶端更高。<br />这条规则类似于规则四,同时也规定了浮动元素之间的摆放位置<br />margin<br />padding<br />①<br />②<br />③<br />
  11. 11. 浮动的详细内幕<br />六、如果文档中一个浮动元素之前出现另一个元素,<br />浮动元素的顶端不能比包含该元素所生成框的任何行框顶端高。<br />类似于规则四和五,这个规则进一步限制了元素的向上浮动。<br />margin<br />padding<br />①<br />②<br />③<br />
  12. 12. 浮动的详细内幕<br />七、左(右)浮动元素的左(右)边有另外一个浮动元素,前者的右外边界不能在其包含块的右(左)边界的右边 (左边)<br />也就是说,浮动元素不能超出其包含元素的边界,除非它太宽,本身都无法放下。这就可以防止多个浮动元素位于同一水平行上,超出其包含块的边界。如果没有足够的空间,后面的浮动元素就会被挤到新的一行。<br />margin<br />padding<br />①<br />②<br />③<br />④<br />⑤<br />
  13. 13. 浮动的详细内幕<br />八、浮动元素必须尽可能高的放置<br />这条规则基于规则七的基础上<br />九、浮动元素尽可能远的的放置。<br />margin<br />padding<br />①<br />②<br />③<br />④<br />⑤<br />
  14. 14. 浮动的行为<br />http://isd.tencent.com/?p=1122<br />http://www.positioniseverything.net/easyclearing.html<br />http://www.webtoolkit.info/css-clearfix.html<br />http://thinkvitamin.com/design/everything-you-know-about-clearfix-is-wrong/<br />浮动的清除<br />
  15. 15. The End<br />祝:新年快乐!<br />兔年吉祥!<br />

×