网站大量收购独家精品文档,联系QQ:2885784924

浮动清理方法.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浮动清理方法

← 感谢苹果,新主题进度归零 免费 WordPress 主题—— 《Field》 → 清理浮动的那些事儿(1)——6 种清 理浮动的方法 发表于 2011 年 02 月 01 日 由 Sivan 文章目录 [ - ] 1. 前言 2. 清理浮动的方法 1. 使用带有 clear 属性的空元素 2. 使用 CSS 的:after伪元素 3. 使用 CSS 的 overflow 属性进行怪异处理 4. 给浮动元素的容器添加浮动 5. 使用邻接元素清理 6. 其他方法 3. 我的解决方案 1. 综合运用方案 2. 一劳永逸方案 4. 小结 前言 (update 2011.02.01)配合图片重写了一下本文。 近期有一项目涉及修改别人所写的主题,在清理浮动的环节上无比痛苦。在此 整理一下关于清理浮动的方法和我的看法,希望能提供一些参考作用。 浮动(Float)最初的定义我想只是为了实现图文环绕效果,而如今通常在多栏 布局时使用,是 CSS 里最最常用的一种布局手段。比起圣杯布局等,它 更加容 易上手并容易处理布局问题。由于浮动的特性,在布局中使用就产生了两个问 题——会对后面的元素造成影响而且造成浮动元素的容器高度失效。因此我们 需 要随时清理浮动,方法有很多但各有弊端。选择合理的清理方式除了让代码 看起来更优雅,还会对日后维护提供很大的方便。 清理浮动的方法 使用带有 clear 属性的空元素 在浮动元素后使用一个空元素如div class=clear/div,并在 CSS 中赋 予.clear{clear:both;}属性即可清理浮动。亦可使用 lt;br class=clear /或hr class=clear /来进行清理。 我想说这并不是一个好方法,尽管它兼容所有浏览器并且随用随清。这个方法 需要添加大量无语义的 html 元素,你能想象一个并不算复杂的 footer 里就使 用 4 次 div.clear 吗?天哪! 使用 CSS 的:after伪元素 给浮动元素的容器添加一个 clearfix 的 class,然后给这个 class 添加一 个:after伪元素实现元素末尾添加一个看不见的块元素(Block element)清 理浮动。这是我认为目前比较完美的解决方式。 如图所见,通过 CSS 伪元素在容器的内部元素最后添加了一个看不见的空格 “/20”或点 “.” (后者可理解为一些国外书籍过时的介绍:0)并且赋予 clear 属性来清除浮动。需要注意的是为了 IE6 和 IE7 浏览器,要给 clearfix 这个 class 添加一条 zoom:1;触发 haslayout (你可以把它写到IE6、7 的CSS hacker 文件里,这样不会影响 W3C 标准验证)。 该方法需要给每组浮动元素都添加一个容器,推荐在页面布局时使用。大量使 用依旧会对代码量造成一些影响。 另外我想说的一点:我倾向于 《无懈可击的Web 设计 II》一书中提到的 把.clearfix 改为.group,让代码的可读性更好。group 说明内部元素为一组, 使用 clearfix 客户会误认为 “你写了些神马?竟然用了这么多 ‘修正’!”。 使用 CSS 的 overflow 属性进行怪异处理 给浮动元素的容器添加 overflow:hidden;或 overflow:auto;可以怪异清理浮动。 在清理浮动前(如箭头上图),浮动的元素跳离了container 层,自己跑到上 层去了(用阴影表示)。在添加 overflow 属性后(如箭头下图),浮动元素又 回到了容器层,把容器高度撑起,达到了清理浮动的效果。 虽然很多地方以 “将来浏览器可能不兼容”为由,不建议使用此方法。我倒是 觉得目前使用此法的国内外网站众多,浏览器短时间内并不会在此问题上后退 处 理。此外这个方法无需添加额外的 class,在做主题时比较实用。我建议在 局部和无法添加 class 的地方使用该方法清理浮动,但是不要作为主要清理浮 动 方式。overflow:auto;还是不要用了。 给浮动元素的容器添加浮动 给浮动元素的容器也添加上浮动属性即可清理内部浮动。同 overflow 法一样无 须添加额外的 class,使用方便但是会对下面的文档造成影响。 建议在容器原本就浮动或者容器使用了绝对定位时使用该方法。不要在主要布 局中使用。 使用邻接元素清理

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档