• 11.定位样式


    前面学习了浮动样式,今天我们来学习一下定位样式,

    01. 定位样式的效果: 

          定位样式设置以后,元素也会脱离标准文档流,上浮,其它元素按标准文档流的规则进行布局;

          ** 应用定位样式的元素,在上浮后,默认停靠在Content区域;

          (注意一下,元素在定位样式生效后,并未生成文字环绕效果,这一点与浮动样式是有区别的)

          

    02. 兄弟元素同时应用定位样式时,在视觉上,后面上浮的元素会在先上浮元素的上面
          (这一点与浮动不一样,浮动样式中,多个兄弟元素上浮后是在同一层级,而且不相互遮挡,但定位样式却存在遮挡情况)

         

    03. 定位元素的层级关系控制:  

          定位样式应用后,存在一个"展示层级"的概念, 默认展示层级为0, 我们可以通过修改元素的展示层级来调整元素的展示先后关系,

          这个展示层级通过 z-index 属性进行控制;  (定位样式元素的位置在浮动样式元素之上)

         

    04. 定位样式的坐标系规则

          在元素应用定位样式后,为了达到特定的布局效果,如:淘宝网页右侧的导航栏,永远会展示在右侧,不管我们如何滚动页面,

          这个右侧导航栏永远是可见的,

          我们可以通过 top, right, bottom, left这四个属性来设置元素在坐标系中的相对位置, 

          (当然,如果四个属性全设置的话,只有top , left这二个参数生效,因为这种情况下属于过份约束)

          但在这里就存在一个问题,这个坐标系在哪里?????怎么设置???

         --> 坐标系的设置:  

               ** 若没有任何祖先类元素设置了坐标系,则默认以浏览器窗口为坐标系进行布局;

               ** 通过 position:relative; 可以设置元素的坐标系标准; (即:相对定位; 以父元素为基础做相对定位坐标系)

               ** 坐标系的设置,一般是设置元素的祖先类元素;

               ** 如果元素的多个祖先类元素都设置了坐标系,则以最近一个祖先元素为坐标标准;

               ** 在设置了祖先类元素为坐标系后, 元素的停靠位置由默认情况下的content区,变成了padding区;

               

         

    05. 对于定位样式,同样可以使用margin属性,但却限于一定的条件下面;
          --> 默认直接支持支持margin-top, margin-left;   而 margin-bottom, margin-left无效果;

          --> 在设置坐标系参数bottom而没有设置top时,margin-botton 生效;

                在设置坐标系参数right而没有设置 left时,margin-right生效;

          -->而当设置left后,margin-right失效; 

                  当设置top后,margin-bottom失效;

          

    06.定位样式的居中应用

         从05内容中的录屏我们可以发现,设置定位参数left, top ,right, bottom 对margin是有影响的, 默认是将top ,left指定的位置点为元素对应的栅栏一样,

         当设置相应边的margin时,直接以此值指定的位置为基准点进行margin距离控制, 但是当设置了 right, bottom属性后,原来默认支持的 left, top 的标准点就无效了,

         转而以right, bottom所指定的位置点为栅栏的边框了,(就好比你没弄,我帮你弄个栅栏,你自己弄了,我就不管了 ^_^)

         通过上述的规则,定位样式有一种特殊的居中应用效果:

         

    06. 定位样式中的固定定位

          通过前面的学习,我们已经了解到,当一个元素使用了定位样式并应用到坐标系时,默认是以浏览器窗口为坐标系标准的,

          但如果这个元素的任何一个祖先类设置了相对定位以后,元素将不再以窗口为坐标系了,

          如果我们想实现不论什么时候都以窗口为坐标系时,则需要应用到另外一个定位样式规则: 固定定位;

          --> position:fixed;

          

          

  • 相关阅读:
    java继承中的初始化顺序
    java可访问修饰符
    java简单数据类型转化
    java运算符优先级
    面向切面编程的例子
    什么是面向切面编程
    return 的使用
    通过修改my.ini配置文件来解决MySQL 5.6 内存占用过高的问题
    spring 注入使用注解(不用xml)
    spring在扫描包中的注解类时出现Failed to read candidate component错误
  • 原文地址:https://www.cnblogs.com/jieling/p/10919485.html
Copyright © 2020-2023  润新知