zoukankan      html  css  js  c++  java
  • hasLayout属性

    hasLayout是IE特有的一个属性,很多的ie下的css bug都与其息息相关。

    haslayout在ie8的标准模式下已经被废弃了,但是在ie7的兼容版本以及以下的版本是仍然存在的。

    当一个元素的hasLayout属性值为true时,它负责对自己和可能的子孙元素进行尺寸计算和定位。虽然这意味着这个元素需要花更多的代价来维护自身和里面的内容,而不是依赖于祖先元素来完成这些工作。

    很多情况下,我们把 hasLayout的状态改成true 就可以解决很大部分ie下显示的bug。

    下列元素默认 hasLayout=true

    <table> <td> <body> <img> <hr> <input> <select> <textarea> <button> <iframe> <embed> <object> <applet> <marquee>

    hasLayout属性不能直接设定,你只能通过设定一些特定的css属性来触发并改变 hasLayout 状态。

    列出可以触发hasLayout的一些CSS属性值。

    display

    启动haslayout的值:inline-block

    取消hasLayout的值:其他值

    --------------------------------------

    width/height

    启动hasLayout的值:除了auto以外的值

    取消hasLayout的值:auto

    ---------------------------------------

    position

    启动hasLayout的值:absolute

    取消hasLayout的值:static

    ----------------------------------------

    float

    启动hasLayout的值:left或right

    取消hasLayout的值:none

    ---------------------------------------

    zoom

    启动hasLayout的值:有值

    取消hasLayout的值:narmal或者空值

    zoom是微软IE专有属性,可以触发hasLayout但不会影响页面的显示效果。

    zoom: 1常用来除错,不过 ie 5 对这个属性不支持。"

    hasLayout 引起的不兼容

    无浮动盒子div模型内一个浮动div盒子,边框高度撑不开,其高度并不会自动计算

    处理。

    无浮动的div加上个zoom:1;来触发其hasLayout属性

    给一个确定的高度值 height

    添加浮动 float

    添加定位 position

    添加 display:inline-block

    通常firefox等标准的遵守浏览器可以加上overflow: hidden;来解决,而IE则不行,需要触发其hasLayout属性才可以。

  • 相关阅读:
    zjnu1725 COCI (类似二维树状数组模拟)
    zjnu1730 PIRAMIDA(字符串,模拟)
    hdu5365Shortest Path (floyd)
    表达式的转换 (模拟题)
    zjnu1709 UZASTOPNI (bitset,树形dp)
    zjnu1707 TOPOVI (map+模拟)
    zjnu1716 NEKAMELEONI (线段树)
    zjnuSAVEZ (字符串hash)
    codeforces 55D. Beautiful numbers (数位dp)
    TP5将入口文件放在Public中,能得到那些安全保障?
  • 原文地址:https://www.cnblogs.com/bigdesign/p/4158658.html
Copyright © 2011-2022 走看看