各种浏览器css浮动问题

  Firefox 中发现一个与定位相关的 bug 是 Top Gap Bug。这个 bug 通常都会出现于多栏布局,其中栏是浮动的,而 header section 却不是。如果其中某个栏中的某个元素具有上边框,那么此边框会被推至 header 之上,导致窗口顶部和 header 顶部之间出现间隙。修复的手段是在被浮动栏上放一些东西。一种方式是向具有 clear:both 属性的头的底部添加一个元素。另一种方式是让 header 也浮动。

下面介绍几种技术来消除对 HTML 文档添加额外标记的需要。这些技术包括:

  • 向容器元素添加 “float”。
  • 向容器元素添加 “overflow:hidden”。
  • 在容器元素上添加一个 CSS2 “:after” 伪类。

    一、浮动容器技术(Float Container Technique):该技巧常常见于页面布局和水平导航菜单 — 在浮动容器内放上一个浮动元素。浮动容器会被扩大以包含所有内部的浮动元素。这种方式需要准确设置容器的宽度属性,100% 是常见的一种设置。 这种技术有几个缺点。第一个缺点是很难设置宽度,使用 100% 可能会与留白冲突。第二,Internet Explorer V6 可能还会添加额外的底边框。最后,浮动框的深度嵌套常常会导致在浏览器中产生某些不可预知的行为。 这种浮动容器技术所使用的 CSS 代码如下。 .clearfix {     float: left;     width: 100%; }

    二、隐藏溢出容器技术(Hidden Overflow Container Technique):这种方式很少使用。它涉及了对 “overflow” 属性和默认的 “clip” 属性的利用 — 一个溢出 元素会被扩至所有所含子元素(包含被浮动元素)的大小。 这种技术也有几个缺点。首先,使用溢出可能会影响容器的 fluid height。其次,溢出需要触发 Internet Explorer V6 的 “hasLayout” 属性。 隐藏溢出容器技术所使用的 CSS 代码如下: .clearfix {     overflow: hidden;     height: 1%;     /* Or zoom:1 to trigger IE's hasLayout */ }

  • 三、:after 伪类技术:这种方式极少使用。它所涉及的是使用 CSS 伪类在容器后生成内容。使用 :after 伪类技术向结果 HTML 文档追加已指定 clear 属性的新元素。

    这种技术最不推崇,提供支持的浏览器也少。Internet Explorer V7 或更早的版本不支持 :after 伪类技术。但最为重要的是,这种技术会将无意义的内容插入到结果 HTML 文档。

    下面是 :after 伪类技术所使用的 CSS 代码。 (ff中border的bug解决方法) .clearfix {     height: 1%;     /* Or zoom:1 to trigger IE's hasLayout */ } /*clear both*/ .clearfix :after {     content: ".";     display: block;     height: 0;     clear: both;     visibility: hidden; } .clearfix {display: inline-block;} /* Hides from IE-mac /*/ * html .clearfix {height: 1%;} *+html .clearfix {height: 1%;} .clearfix {display: block;} /* End hide from IE-mac */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值