博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IE的haslayout触发
阅读量:6279 次
发布时间:2019-06-22

本文共 1057 字,大约阅读时间需要 3 分钟。

layout是Windows上IE产生许多Bug的根源。如果在IE上遇到一个bug,可以尝试下强迫元素拥有layout。

啥是layout(布局)了?

layout是windows上的IE特有的东西,但它不是css属性。拥有layout的元素负责本身及其子元素的尺寸和定位;

而不拥有layout的元素,它的尺寸和位置会由最近拥有layout的父元素控制。

可以用JavaScript函数hasLayout来查看一个元素是否拥有layout。

在默认情况下拥有layout的元素包括:

body
标准模式中的html
table
tr/td
img
hr
input/select/textarea/button
iframe/embed/object/applet
marquee

设置以下css属性会自动地使元素拥有layout:

position: absolute 或 fixed
float: left 或 right
display: table 或 table-cell 或 inline-block 或 inline-table
overflow: hidden 或 scroll 或 auto(IE7会,IE6不会)
width:除 “auto” 之外的任何值
height:除 “ auto” 之外的任何值
min-width:任何值(IE6不支持此属性)
max-width:除 “none” 之外的任何值(IE6不支持此属性)
min-height:任何值(IE6不支持此属性)
max-height:除 “none” 之外的任何值(IE6不支持此属性)
zoom:除 “normal” 外的任何值(Microsoft属性——不能通过W3C检验)
writing-mode:tb-rl(Microsoft属性——不能通过W3C检验)

layout产生的影响:

拥有layout的元素是IE产生浮动Bug的根源
拥有layout的文本元素不会围绕浮动元素
拥有layout的元素不进行收缩
layout元素对浮动进行自动清理
拥有layout的列表元素(ul/ol/dl/li)会表现异常
拥有layout的元素背景图像定位(background-position)会产生偏差
相对定位(position: relative)的元素不能获得layout
拥有layout的元素之间外边距(margin)不叠加
在不拥有layout的块级(display:block)链接上,单击区域只覆盖文本

转载地址:http://ltfva.baihongyu.com/

你可能感兴趣的文章
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>