栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Html/CSS > CSS教程

CSS position:absolute全面了解

CSS教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CSS position:absolute全面了解

一、绝对定位的特征

绝对定位有着与浮动一样的特性,即包裹性和破坏性。

就破坏性而言,浮动仅仅破坏了元素的高度,保留了元素的宽度;而绝对定位的元素高度和宽度都没有了。

请看下面代码:

XML/HTML Code复制内容到剪贴板
  1.   
  2.   
  3.       
  4.           
  5.         绝对定位的特征  
  6.           
  7.       
  8.       
  9.           
  10.             

      
  11.             

      
  12.             

    这是普通流中的两幅图像。

      
  13.         
  
  •           
  •             

      
  •             

      
  •   
  •               
  •                 

      
  •                 

      
  •             
  •   
  •             

    左图,将第一幅图像绝对定位,其完全脱离文档流,并且覆盖在第二幅图像之上;由此看出,绝对定位的破坏性不仅让元素没有了高度,甚至没有了宽度。

      
  •             

    右图,将第一幅图像左浮动,其虽然脱离了文档流,但是并没有覆盖在其他元素之上;浮动的破坏性仅仅破坏了元素的高度,而保留了元素的宽度。

      
  •         
  •   
  •           
  •             

      
  •             

      
  •             

    将容器绝对定位,体现其包裹性。

      
  •         
  •   
  •       
  •   
  • 二、绝对定位的一般规则:

    元素绝对定位时,会完全脱离文档流,并相对于其包含块定位。

    绝对定位的包含块,是其最近的已定位的祖先元素。

    如果这个祖先元素是块级元素,包含块则为该祖先元素的内边距边界,即边框。

    如果这个祖先元素是行内元素,包含块则为该祖先元素的内容边界,即内容区。

    如果没有已定位的祖先元素,元素的包含块定义为初始包含块。

    偏移属性:top、right、bottom、left。

    如果绝对定位的元素没有设置偏移属性,虽然脱离文档流,但是它的位置是原地不动的。

    偏移属性可以为负值,将元素定位到包含块之外。

    代码在这里:

    XML/HTML Code复制内容到剪贴板
    1.   
    2.   
    3.       
    4.           
    5.         绝对定位的一般规则  
    6.           
    7.       
    8.       
    9.           
    10.               
    11.                 

      元素绝对定位时,会完全脱离文档流,并相对于其包含块定位。绝对定位的包含块,是其最近的已定位的祖先元素。

        
    12.                 

        
    13.                   
    14.               
    15.           
    16.           
    17.               
    18.             

      不管有没有已经定位的祖先元素,只要没有偏移量,绝对定位之后,原地不动,脱离文档流。

        
    19.             

      下面这个已经绝对定位的图像原地没动,但是已经脱离了文档流。

        
    20.             

        
    21.               
    22.           
    23.           
    24.               
    25.                 

      没有已经定位的祖先元素,有偏移量,绝对定位之后,以初始包含块(一个视窗大小的矩形)为基准进行偏移。

        
    26.                 

      当偏移量为left:0; buttom:0时,图像水平偏移到了初始包含块左下角(打开网页最开始的那一个视窗的左下角)。

        
    27.                 

        
    28.               
    29.           
    30.           
    31.               
    32.                 

      有已经定位的祖先元素,有偏移量,绝对定位之后,以已经定位的祖先元素为基准进行偏移。

        
    33.                 

      此处已经定位的祖先元素为这个图像的容器div元素,偏移量为left:0; bottom:0时,图像到了这个容器的左下角(以边框为界)。

        
    34.                 

        
    35.               
    36.           
    37.           
    38.               
    39.                 

      有已经定位的祖先元素,有偏移量,绝对定位之后,以已经定位的祖先元素为基准进行偏移。

        
    40.                 

      此处已经定位的祖先元素为这个图像的容器div元素,偏移量为left:-30px; bottom:-50px时,图像到了这个容器之外(以边框为界)。

        
    41.                 

        
    42.               
    43.           
    44.            
    45.   

    三、用margin调整绝对定位元素的位置

    绝对定位的元素,除了可以使用top、right、bottom、left进行偏移之外,还能够通过margin值进行精确定位,而且自适应性更好。

    示例:

    XML/HTML Code复制内容到剪贴板
    1.   
    2.   
    3.       
    4.           
    5.         用margin调整绝对定位元素的位置  
    6.           
    7.       
    8.       
    9.           
    10.             卡哇伊  
    11.             

        
    12.             萌萌哒  
    13.           
    14.           
    15.             卡哇伊  
    16.             

        
    17.             萌萌哒  
    18.                    
    19.           
    20.             卡哇伊  
    21.             

        
    22.             萌萌哒  
    23.                
    24.           
    25.             
          
      1.                 
      2. 第一幅图,最开始的样子。
      3.   
      4.                 
      5. 第二幅图,两个标签绝对定位,但是不指定任何偏移量。
      6.   
      7.                 
      8. 第三幅图,用margin负值调整“萌萌哒”的位置,完成。
      9.   
      10.             
        
    26.                    
    27.       
    28.   

    放弃偏移属性而改用margin来调整绝对定位元素,其原理在于:

    绝对定位的元素,在不设置偏移量的时候,它虽然完全脱离了文档流,但它还在原来的位置。

    利用偏移属性进行精确定位,其具体位置是取决于绝对定位元素的包含块,不同的包含块将会有完全不一样的定位结果。

    而利用margin进行精确定位,不依赖于任何其他东西,更加可控。

     

    四、绝对定位与整体布局

    如何用绝对定位来对页面进行整体布局?

    简单粗暴,不学就浪费啦!!!

    XML/HTML Code复制内容到剪贴板
    1.   
    2.   
    3.       
    4.           
    5.         绝对定位与整体页面布局  
    6.           
    7.       
    8.       
    9.           
    10.               
    11.                 

      Header

        
    12.               
    13.               
    14.                 

      Aside

        
    15.               
    16.               
    17.                 

      实现原理

        
    18.                 
          
      1.                     
      2. 创建一个div.page,绝对定位,铺满全屏。
      3.   
      4.                     
      5. 创建一个div.header,绝对定位,设定高度。
      6.   
      7.                     
      8. 创建一个div.aside,绝对定位,设定宽度。
      9.   
      10.                     
      11. 创建一个div.footer,绝对定位,设定高度。
      12.   
      13.                     
      14. 创建一个div.content,绝对定位,根据周围div的宽高设定它的宽高;  
      15.                     以div.content元素取代原body元素,所有的页面内容都放在这里面。
      16.   
      17.                 
        
    19.               
    20.               
    21.                 

      Footer

        
    22.               
    23.           
    24.       
    25.   

    以上这篇CSS position:absolute全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持考高分网。

    原文地址:http://www.cnblogs.com/cc156676/archive/2016/07/19/5685300.html

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/215734.html

    CSS教程相关栏目本月热门文章

    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号