• Layout


    Layout

    ‘Layout’ 是 IE 浏览器渲染引擎的一个内部组成部分。在 IE 浏览器中,一个元素是依赖祖先元素来管理自身尺寸和内容, 一个是自己负责管理自身尺寸和内容。为了协调这两种方式的矛盾,渲染引擎采用了 ‘hasLayout’ 属性,属性值可以为 true 或 false。 当一个元素的 ‘hasLayout’ 属性值为 true 时,我们说这个元素’hasLayout’,即拥有布局。

    一个元素’hasLayout’就是指该元素自己负责管理自身尺寸和几乎所有子元素(除了那些同样拥有layout的子元素,因为这些拥有layout的子元素同样是自己负责管理自身的尺寸和后代)。

    元素如何才能拥有layout

    有一些元素默认就拥有layout,例如:

    <img>

    <table> <tr> <th> <td>

    <hr>

    <input> <select> <textarea> <button>

    <marquee>

    <iframe>

    <object> <applet> <embed>

    <html> <body>

    其它元素在满足一定条件时也会拥有layout,

    例如:

    position:absolute的元素

    float: left | right 的元素

    display: inline-block的元素

    在严格模式下,块级元素设置宽度/高度(值不能为auto)后会拥有layout

    在compat模式下,任何元素赋值宽度/高度(值不能为auto)后都会具备layout

    设置zoom属性(值不为normal)的元素具备layout

    跟父级元素的布局流不相同的元素(rtl to ltr)

    当元素满足以上任何一个条件时在IE6、7中都会拥有layout。还有一些CSS属性只在IE7中能让元素拥有layout,例如:

    overflow: hidden | scroll | auto的元素

    overflow-x|-y: hidden | scroll | auto 的元素

    min-width | min-height: 任意值(包括0)的元素

    max-width | max-height: 除 “none” 之外的任意值的元素

  • 相关阅读:
    面试题:能谈谈Date、Datetime、Time、Timestamp、year的区别吗?
    面试题:对NotNull字段插入Null值 有啥现象?
    聊聊什么是慢查、如何监控?如何排查?
    谈谈MySQL的基数统计
    .vimrc
    HISKrrr的板子库
    CSP 模拟35
    晚测1
    CSP 模拟34
    nim板子题异或正确性YY
  • 原文地址:https://www.cnblogs.com/lynn2001/p/3935991.html
Copyright © 2020-2023  润新知