在一些被常规的页面布局当中,我们常常需要通过position定位HTML元素来实现我们想要的效果。但是在这个办法在IE6中常常会出现各种问题。例如,我们想让一个子元素溢出其父元素之外显示,而影响父元素本身和其他兄弟元素的样式,我们可以这样写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <style type="text/css"> body{ text-align:center;} .father{ width:300px; height:300px; background:#96F; margin:0 auto; _overflow:hidden; } .son{ width:400px; height:200px; background:#09F; position:relative; right:100px; top:0px;} </style> <body> <div class="father"> <div class="son">子元素</div> 父元素 </div> </body> </html> |
运用position:relative,在IE7+,chrome,firfox中能很好的实现溢出效果,如下图:
但是在IE6中,父元素却被子元素撑开了了,width值变成了400px; 在这个情况下,子元素right:100px属性作用使其向左移动100px,这点IE6和其他浏览器效果其实一样,由于被撑开,子元素右边出现了100PX和父元素之间的空隙。如下图:
所以,我们给父元素添加一个overflow:hidden属性,防止在IE6被子元素撑开,但是,在IE7+,chrome,firfox中溢出部分被hidden掉了,IE6却没有。因此我们还得出一个结论:IE6下父元素的overflow:hidden对于具有position:relative属性的子元素无效,但是可以防止被子元素撑开。所以,可以这样写父元素的hack:
1 |
.father{ width:300px; height:300px; background:#96F; margin:0 auto; _overflow:hidden; } |
在verflow:hidden前加个只有IE6才能识别的下划线,就OK了。
发表评论
-
基于脚本的动画的计时控制(“requestAnimationFrame”)(转载)
2014-03-04 19:12 1054Internet Explorer 10 和使 ... -
IE11开发人员工具:UI响应工具详解
2014-02-27 18:33 950我讨厌debug,相信也没多少开发者会喜欢。但是当代码出 ... -
IE11开发人员工具:内存分析工具详解
2014-02-27 18:32 1466上篇我们跟大家介绍 ... -
E6与location.hash和Ajax历史记录 (转载)
2014-02-26 12:23 563为了在IE6中改变hash来保留历史记录实现ajax的前进 ... -
MIME Types(转载)
2013-12-31 10:20 652MIME Types - Complete List ... -
iframe历史记录问题(转载)
2013-10-17 10:21 1353在做页面统计的时候 ... -
前端类库精选(转)
2013-05-11 00:57 0优秀的前端类库,自己平时遇见了,这里Mark一下。 1、m ... -
10个chrome console实用小技巧(转)
2013-05-09 10:56 10751. 基本输出 让我们先从最常见的console.l ... -
CSS3那些不为人知的高级属性(转)
2013-04-19 13:35 963原文:CSS的未来:一些 ... -
JavaScript 时间、格式、转换及Date对象总结(转)
2013-04-10 14:49 726悲剧的遇到问题,从前台得到时间,“Tue Jan 29 16 ... -
如何制作一个可及性强(accessible)的网页弹框(转载)
2013-04-02 16:18 813英文原文:Making an accessib ... -
JavaScript MVC js也mvc(转载)
2013-03-16 23:59 694JavaScript MVC 中文:http://blog ... -
SUBLIME TEXT 2 设置文件详解
2012-12-27 11:21 1066Sublime Text 2是那种让人会一眼就爱上的编辑 ... -
两个按位非操作与Math.floor操作(译)
2012-12-10 18:17 961位操作符在我们编码过程中是容易被遗忘的,可能更多的源于我们 ... -
img中src为空的影响
2012-11-26 23:32 0这是我们经常能遇到的代码,可以直接用html标签或者Java ... -
chrome developer tool 调试技巧(转)
2012-11-12 13:16 873这篇文章是根据目前 chrome 稳定版(19.0.10 ... -
你清楚jquery是如何清除ajax缓存的吗?(转)
2012-11-11 11:19 1061大家都知道万恶的IE在ajax中往往只读取第一次ajax ... -
是时候使用JavaScript严谨模式(Strict Mode)提升团队开发效率 In JavaScript(转)
2012-11-10 23:33 729随着WebApp突飞猛进的发展,Javascript写的 ... -
Javascript基础
2012-11-10 23:25 0原文:http://bonsaiden.githu ... -
高质量JavaScript精品库集合 In JavaScript,资源工具(转)
2012-11-10 10:27 778编辑器 1、Code Mirror 又一款“Onli ...
相关推荐
前言 有时候,我们需要如下图这样一个悬浮效果需求: 实现 在标准的正常的情况下,只能使用 绝对定位 来完成。 第一步:父容器定位设置为 relative(相对.../*父元素>相对定位*/ } #b{ width: 150px; height:50px;
### 解决IE6中的定位问题:Position Fixed 在早期的Web开发中,Internet Explorer 6(简称IE6)因其浏览器兼容性问题而臭名昭著。其中一个常见的问题是`position: fixed;`属性在IE6中不起作用。这使得开发者很难...
例如,设置`overflow: hidden`防止父元素内容溢出,以及设置`position: relative`或`absolute`来控制父元素的位置。 5. **使用库或插件**: 虽然可以手动实现这个功能,但为了提高效率和兼容性,也可以使用一些...
如果`div`内部的子元素被设置了`position: absolute`,它会从正常文档流中移除,不再影响父元素的尺寸。因此,父`div`可能不会自动扩展以适应它。 **解决方案:** 1. 如果可能,避免使用绝对定位,或者尝试使用相对...
1. **祖先元素定位**:要使子元素相对于父元素绝对定位,父元素必须有定位属性(`position`),通常是`position: relative;`。这样,子元素就会相对于这个父元素定位,而不是相对于文档流。 2. **滚动条处理**:...
标题“浮动里的绝对定位元素在IE下被遮挡的解决方法”指向的就是一个典型的问题,即在IE浏览器中,绝对定位的元素可能会被其他浮动元素遮挡。这个问题在其他现代浏览器中可能不存在,但对那些还需要支持IE的开发者来...
为了解决IE6中的`position: fixed;`问题,我们可以采用以下几种方法: 1. **条件注释法**: 在HTML文档的头部,可以使用IE6特有的条件注释来引入一个专门为IE6定制的CSS文件,这样可以针对IE6浏览器提供特别的样式...
通常,这样的示例会包含一个演示页面,展示在IE6下如何正确显示固定定位元素。 总之,要在IE6下实现`position: fixed`效果,开发者需要依赖一些非标准的技术和工作-around。这篇博客可能提供了一个详细指南,帮助...
本文实例讲述了绝对定位元素被遮挡的解决方法。分享给大家供大家参考。具体方法如下: ie7下 绝对定位元素即使z-index值很高,如果其设置相对定位的父元素没有设置z-index值的话,其可能(这种可能性当然是布局存在...
### CSS子元素相对父元素进行定位的实现 #### 解决方案概述 在Web开发中,经常需要对页面中的元素进行精确的布局控制。CSS提供了多种定位机制,其中相对定位(`relative`)与绝对定位(`absolute`)是两种常用的...
在其他现代浏览器中,CSS的`position`属性如`relative`、`absolute`和`fixed`能很好地实现元素的定位,但在IE6中,这些属性的处理方式却大不相同,导致开发者需要进行特殊的“hack”来解决这些问题。 首先,IE6不...
overflow:hidden失效 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效。 我们在IE 6内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:...
令人蛋疼的IE,IE6/IE7下父元素有相对/绝对定位时,子元素在IE6和IE7下overflow:hidden;失效。 情况一:(在parent上增加position:relative) 复制代码代码如下: <style type=”text/css”> .parent{ width:...
本资源旨在解决IE6下`fixed`定位的实现问题,帮助开发者绕过这个棘手的兼容性障碍。要理解这个问题,首先要了解`position: fixed`的正常行为:元素的位置基于视口,而不是文档流,这意味着它会保持在屏幕的特定位置...
具体表现为:当一个设置了`absolute`或`relative`定位的父元素被隐藏(通过设置`display:none`),然后其子元素也被隐藏,最后再重新显示这个父元素时,子元素在IE6/7及IE8/9/10的IE7模式中可能会意外地显示出来,...
这个场景常见于创建滚动效果或者实现自定义滚动条,比如在滚动父元素时,子元素随着父元素的滚动保持可见或执行特定的动画。 首先,我们需要引入jQuery库,例如通过在HTML文件中引用`<script src="jquery-1.5.js">...
` 这个表达式是IE6特有的,它会动态地更新元素的垂直位置,使其相对于父元素的滚动条位置保持固定。 - `_left:expression(offsetParent.scrollLeft);` 类似地,这个表达式用于处理元素的水平位置。 如果需要让元素...