网络编程
位置:首页>> 网络编程>> 网页设计>> IE6,IE7中定位相关的怪异问题

IE6,IE7中定位相关的怪异问题

 来源:Gulu77 发布时间:2009-12-08 12:49:00 

标签:定位,ie,bug,css

事物绝非十全十美总有强差人意的一面,之前针对浮动分析了其引起文本重影的怪异问题,而作为浮动布局的最佳搭档定位布局也存在一定的缺陷。

围绕着定位列出的种种问题,对某些情况只是作出了分析而暂时没有找到有解决方案,但既然知道问题所在,我们可以尽可能的采取其它措施避免这现象。


  1. position:relative;属性值导致overflow:hidden;失效。


    问题:在IE6/7中子级设置position:relative;属性值后,导致父级的overflow:hidden;失效。
    演示地址:position_demo1.html

  2. 分析:与定位的层级关系有关,IE6/7解析为内容已经跳出文档流,以致父级误以为没有包含内容。

    解决方案:
    对于IE6可以为父级添加定位属性纠正问题,但IE7依然无效。

  3. overflow充当了position:relative的角色


    问题:在IE6或IE quirks模式中设定overflow:auto/hidden/scroll属性值后,元素显示效果相当于position:relative的相对定位效果。
    演示地址:position_demo2.html 

    分析:在怪异模式与标准模式下的页面对CSS的解析会有一定的差异甚至是扭曲了其属性的作用,对这现象暂时还没有冲破的能力,也只能记录与回避了。

  4. 没有实渲染导致绝对定位的错误


    问题:在IE6中,子级元素绝对定位于父级元素时,当动态改变父级宽高时,子级位置没有发生变化。
    演示地址:position_demo3.html

    分析:估计是动态改变父级宽度时,IE6并没有实时对浏览器渲染。暂时没有CSS能解决这问题,但可尝试使用JS对改变改模块高度进行刷新解决这问题。

  5. IE6中position:relative;属性值无效


    问题:在IE6及以下版本,父级元素已设置position:relative;属性值,但子级绝对定位元素没有生效。
    演示地址:position_demo4.html

    分析:原因在于父级元素没有触发haslayout(相关资料请搜索On having layout),IE7及以上的高级浏览器则不存在这问题。

    解决方案:
    在父级元素中添加让其触发haslayout的CSS属性值。

  6. 奇数引起定位的1pxBUG


    问题:在IE6及以下版本,父级元素宽度高度为奇数时,子级元素绝对定位于(right:0;bottom:0;),会出现往内偏移1px的错误。
    演示地址:position_demo5.html

    分析:其真正原因还得问IE6的开发者了。但从例子中可以观察到左上角的子级元素显示正常,其原因为“盒子”拉伸扩展为上至下左至右,估计于此以至靠左边或顶部的位置不会发生移动的变化。

0
投稿

猜你喜欢

  • 常见的误解有: 1. 只用 ado.net ,无法进行动态 SQL 拼接。 2. 有几个动态参数,代码的重复量就成了这些参数的不同数量的组合
  • 当你在IE中点击一个Realplayer连接时,系统会自动启动Realplayer软件,不仅占用系统内存,而且在上网时Realplayer容
  • 一直以来都有这样一个困惑,那就是打开页面间的链接时是在原窗口转换还在新窗口打开呢?如果是在原窗口里转换页面的话,那我还想使用原页面的信息呢?
  • 校勘(collation)是指对代码页、字母大小写、音调、语言和字母表的整理,很多校勘都是在数据进入数据库之前进行的,根据我的经验,北美的大
  • ASP使用xmlhttp获取远程网页内容,解决乱码问题方法一:<%function getHTTPPage(url)on error
  • 触发器的概念:“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事
  • 由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小,所以lightbox类效果为了让图片居中显示,导致
  •  在不久前的一天,当我为了解决一个语法问题来翻阅VBscript文档时,偶然间发现在了下面的一句话:  &nb
  • 函数名称:ReplaceHTML参数:@Textstr作用:去掉 @Textstr 内的HTML代码备注:需要给数据库访问者master.s
  • 也许是这样的。下面我们来推荐一个简单的分页程序,代码和说明见下(两段虚线“-----”间的代码是实现该功能的重要语句):chunfeng.a
  • Update 语句Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值P
  • 1、前言 MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、
  • 方法1: X:\oracle\ora81\bin\wrap iname=XXX oname=XXX 方法2:9i在win2000下使用wra
  • 有过Web经验的人喜欢使用:<meta http-equiv="refresh" content="1;
  • 概要:Oracle关系数据库系统以其卓越的性能获得了广泛的应用,而保证数据库的安全性是数据库管理工作的重要内容。本文是笔者在总结Oracle
  • 客户/服务器体系结构图形化的用户界面,使系统的管理更加直观和简单。丰富的编程接口,为用户进行应用程序设计提供了更大的选择余地。与Window
  • Java一直标榜一句老话叫“编写一次,到处运行(Write Once,Run Anywhere)”,CSS也差一点点做到了。但就是为了差的一
  • 字符串转十六进制StrToHex Function<% Response.Write StrToHex("Nice
  • 今天萌发一个想法,用css来实现透视效果。起初,我想到的是我们常见的添加阴影效果的方法,用多个div通过偏移来实现,但这需要很多 div,不
  • 如何取得刚添加的记录自动增加的ID字段的号码?我们用下面这个程序就行:rs(1)=oldrname   &nb
手机版 网络编程 asp之家 www.aspxhome.com