zoukankan      html  css  js  c++  java
  • 可见格式化模型

    可见格式化模型

    外边距折叠

    常规块盒子有一种机制叫作 外边距折叠

    垂直方向上的两个外边距相遇时,会折叠成一个外边距。折叠后外边距的高度等于两者中较大的那个高度

    外边距折叠只发生在文档常规文本流中块级盒子的垂直方向上

    包含块

    如果元素的定位方式为静态定位(position: static)或相对定位(position: realtive),则包含块的边界就计算到一个最近的父元素

    该元素的display属性值必须能提供类似块级的上下文,如 block, inline-block, table-cell, list-item 等

    默认情况下,width, height, margin 和 padding 的值为百分比时,就以该父元素的尺寸为计算依据。如果当前元素的定位模型改成了 absolute 或 fixed,那么计算依据就会发生变化

    相对定位

    相对定位的元素仍然会在文档流中占用初始的空间,但可以应用平移属性。

    因此,这样平移元素会导致它遮挡其他元素

    绝对定位

    绝对定位会把元素拿出文档流,即不会再占用原来的空间

    绝对定位元素的包含块是距离它最近的定位祖先,即 position 属性设置为 static 以外任意值的祖先元素

    绝对定位的盒子脱离了常规文档流,因此很难使用它们创建随视口(viewport)宽度和内容长度变化而变化的自适应或响应式布局

    固定布局

    固定定位元素的包含块是视口(viewport)

    固定定位可用来创建始终停留在窗口相同位置的浮动元素

    很多网站都使用这个技术让导航区始终保持可见,有的固定侧栏,有的固定顶栏

    浮动

    浮动就是为了在网页中实现**文本环绕图片的效果而引入的一种布局模型 **

    浮动会导致内容高度缺失,有如下解决方案:

    • 利用 clear 样式属性(clearFix)

      .clearFix::after {
          content: '';
          display: block;
          clear: both;
      }
      
    • 利用块级格式化上下文

      块级格式化上下文,规定了页面必须自动包含突出的浮动元素,而且所有块级盒子的左边界默认与包含块的左边界对齐。

      有如下规则允许元素建立内部的块级格式化上下文:

      • display 属性值设置为 inline-block 或 table-cell 之类的元素,可以为内容创建类似块级的上下文;
      • float 属性值不是 none 的元素;
      • 绝对定位的元素;
      • overflow 属性值不是 visible 的元素;

    内在大小 与 外在大小

    contain-floats 属性,使用这个关键字,可以仅通过以下代码就让元素包含浮动:

    .myThing {
        min-height: contain-floats;
    }
    

    但是,目前支持这个关键字的浏览器还是较少,小心使用

  • 相关阅读:
    学习JNA,Jnative
    JNative用法注意事项
    使用JNA替代JNI调用本地方法
    傅盛读书笔记:下一个Moonshot是什么?
    华为内部狂转好文:有关大数据,看这一篇就够了
    ws2_32.dll的妙用与删除 (禁网)
    保护颈椎重点按这三大穴位(图)
    在java中调用python方法
    在Windows中实现Java调用DLL(转载)
    java程序员,英语那点事
  • 原文地址:https://www.cnblogs.com/CreateBox/p/15196030.html
Copyright © 2011-2022 走看看