IE6,IE7中定位相关的怪异问题
来源:Gulu77 发布时间:2009-12-08 12:49:00
事物绝非十全十美总有强差人意的一面,之前针对浮动分析了其引起文本重影的怪异问题,而作为浮动布局的最佳搭档定位布局也存在一定的缺陷。
围绕着定位列出的种种问题,对某些情况只是作出了分析而暂时没有找到有解决方案,但既然知道问题所在,我们可以尽可能的采取其它措施避免这现象。
position:relative;属性值导致overflow:hidden;失效。
问题:在IE6/7中子级设置position:relative;属性值后,导致父级的overflow:hidden;失效。
演示地址:position_demo1.html
分析:与定位的层级关系有关,IE6/7解析为内容已经跳出文档流,以致父级误以为没有包含内容。
解决方案:
对于IE6可以为父级添加定位属性纠正问题,但IE7依然无效。overflow充当了position:relative的角色
问题:在IE6或IE quirks模式中设定overflow:auto/hidden/scroll属性值后,元素显示效果相当于position:relative的相对定位效果。
演示地址:position_demo2.html
分析:在怪异模式与标准模式下的页面对CSS的解析会有一定的差异甚至是扭曲了其属性的作用,对这现象暂时还没有冲破的能力,也只能记录与回避了。
没有实渲染导致绝对定位的错误
问题:在IE6中,子级元素绝对定位于父级元素时,当动态改变父级宽高时,子级位置没有发生变化。
演示地址:position_demo3.html
分析:估计是动态改变父级宽度时,IE6并没有实时对浏览器渲染。暂时没有CSS能解决这问题,但可尝试使用JS对改变改模块高度进行刷新解决这问题。
IE6中position:relative;属性值无效
问题:在IE6及以下版本,父级元素已设置position:relative;属性值,但子级绝对定位元素没有生效。
演示地址:position_demo4.html
分析:原因在于父级元素没有触发haslayout(相关资料请搜索On having layout),IE7及以上的高级浏览器则不存在这问题。
解决方案:
在父级元素中添加让其触发haslayout的CSS属性值。奇数引起定位的1pxBUG
问题:在IE6及以下版本,父级元素宽度高度为奇数时,子级元素绝对定位于(right:0;bottom:0;),会出现往内偏移1px的错误。
演示地址:position_demo5.html
分析:其真正原因还得问IE6的开发者了。但从例子中可以观察到左上角的子级元素显示正常,其原因为“盒子”拉伸扩展为上至下左至右,估计于此以至靠左边或顶部的位置不会发生移动的变化。


猜你喜欢
- 方法1:import requestsurl = "http://www.xxxx.net/login"#参数拼凑,附件
- 迭代器迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引
- INSTR的第三个参数为1时,实现的是indexOf功能。 INSTR的第三个参数为-1时,实现的是lastIndexOf功能。 例如: I
- 本文实例讲述了Python文件与文件夹常见基本操作。分享给大家供大家参考,具体如下:1、判断文件(夹)是否存在。os.path.exists
- 前言废话滑块验证码破解是一直都想搞的项目,毕竟多数网站都会采用滑块验证码,于是最近在修改论文的闲暇之余把这事儿给解决了。要搞现在的滑块验证码
- python 3.4 所写爬虫仅仅是个demo,以百度图片首页图片为例。能跑出图片上的图片;使用 eclipse pydev 编写:from
- 1. 首先导入一些python画图的包,读取txt文件,假设我现在有两个模型训练结果的records.txt文件import numpy a
- 需求表格实现行拖拽,要求只支持同级拖拽!实现使用插件:SortableJS,可以参考官网配置项!// 安装npm install sorta
- 一、固定费用问题案例解析1.1、固定费用问题(Fixed cost problem)固定费用问题,是指求解生产成本最小问题时,总成本包括固定
- 本文实例讲述了Python基础之循环语句用法。分享给大家供大家参考,具体如下:while 循环Python中while语句的一般形式:whi
- 我用textarea提交大量的阿数据 我开始字段类型选的是mediumtext,数据有丢失 后来我改成了longtext,数据依然丢失, 而
- 引言今天在使用Pytorch导入此前保存的模型进行测试,在过程中发现输出的结果与验证结果差距甚大,经过排查后发现是forward与eval(
- 本文实例讲述了Python简单生成8位随机密码的方法。分享给大家供大家参考,具体如下:#!/usr/bin/env python# -*-
- 一、 [::-1]import numpy as npimport numpy as npx = np.arange(1, 6)print(
- 1、安装pymysql库如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接使用pip
- 前言: 经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、
- 本文实例讲述了php面象对象数据库操作类。分享给大家供大家参考。具体实现代码如下://此处构造一个数据库操作类,封装所有数据库操作 //可以
- 本游戏程序实现的功能为本地二人对弈中国象棋,实现语言为javascript+VML,在windows 2000 pro+IE 6sp1的环境
- 本文实例为大家分享了python3.5基于TCP实现文件传输的具体代码,供大家参考,具体内容如下服务器代码# _*_ coding:utf-
- 1,js取得IP地址的方法一<script src="http://pv.sohu.com/cityjson?ie=utf-