文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何理解css中position的五个属性

2024-04-02 19:55

关注

如何理解css中position的五个属性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在实际开发页面布局时,运用position,对定位的块级元素的嵌套的效果总是不太理解,这里做了几个测试

一般的在w3c中我们可以很容易的获取定义:

static : 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

fixed :生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

inherit :规定应该从父元素继承 position 属性的值。

absolute : 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative : 生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

总的来说 :

      static呢,就是正常的文档流顺序,默认的,相当于没有定位!

      fixed呢, 就是相对于浏览器窗口,就是你滚动条怎么滚动,他还是那个位置,就想是 “粘” 在窗口上了!

  inherit呢, 就是从父元素继承 position 属性的值,

      absolute呢,是脱离文档流的原来的位置是不继续占据了,如果他的父级元素中有已经定位了的不管是absolute的还是relative,它都会相对于他的父级元素来定位,如果他的父级元素中没有定位了的那么它就是相对于body来定位的。也就是说absolute的绝对是有参照物的!

      relative呢,是不会脱离文档流的原来的位置也就继续占据了,它是只相对于自身原来的位置来定位的!

  前三个是很容易理解的,对于absolute和relative的结合使用,做了几个测试

测试(absolute和relative)

  1.单独的absolute和relative 

  2.relative中的relative,absolute中的relative

  3.absolute中的absolute,relative中的absolute

代码如下:


<!DOCTYPE html>
<html>
<head>
   <title>position -- absolute -- relative</title>
</head>
<style>
   .test-a{
       position: absolute;
       top:20px;
       left:60px;
       width:200px;
       height: 100px;
       background: red;
   }
   .test{
       width:400px;
       height: 100px;
       background: green;
   }
   .test-r{
       position:relative;
       top:50px;
       left:130px;
       background: yellow;
       width:160px;
       height: 180px;
   }
   .test-rr{
       position: relative;
       top: 20px;
       left: 100px;
       width: 600px;
       height: 300px;
       background: blue;
   }
   .test-aa{
       position: absolute;
       top: 24px;
       left: 34px;
       background: orange;
   }
   .test-aaa{
       position: absolute;
       top: 24px;
       left: 34px;
       width:400px;
       height:200px;
       background: #18E457;
   }
   .test-aaaa{
       position: absolute;
       top: 124px;
       left: 134px;
       width:400px;
       height:200px;
       background: yellow;
   }
   .test-rrr{
       position: relative;
       top: 24px;
       left: 34px;
       width:400px;
       height:200px;
       background: yellow;
   }
   .test-rrr{
       position: relative;
       top: 124px;
       left: 134px;
       width:400px;
       height:200px;
       background: red;
   }
   .test-r-a{
       position: absolute;
       top: 124px;
       left: 134px;
       width:800px;
       height:800px;
       background: yellow;
   }
   .test-a-r{
       position: relative;
       top: 124px;
       left: 134px;
       width:700px;
       height:700px;
       background: red;
   }
</style>
<body>
   <div class="test-a">absolute</div>
   <div class="test">分割</div>
   <div class="test-r">relative</div>
   <h3  >结合使用</h3>
   <p>parentNode的position不是relative或absolute,那absolute的绝对对象是针对body的
     parentNode的position  是relative或absolute,那absolute的绝对对象是针对parentNode的
     也就是说absolute的绝对是有参照Node的 </p>
   <div class="test-rr">
       absolute外的relative
       <div class="test-aa">
           relative内的absolute,,,里面这个div是相对外面那个div定位的
       </div>
   </div>
   <div class="test-aaa">
           absolute外的absolute
           <div class="test-aaaa">
               absolute内的absolute,,,,,,,,里面这个div是相对外面那个div定位的
           </div>
   </div>
   <div class="test-rrr" >
           relative外的relative
           <div class="test-rrrr">
               relative内的relative,,,,,,,,里面这个div是相对原来位置定位的
           </div>
   </div>
   <div class="test-r-a">
       relative外的absolute
       <div class="test">
           <div class="test-a-r">
               relative内的absolute,,,里面这个div是相对原来位置定位的
           </div>
       </div>
   </div>
</body>
</html>

其实很多时候,网上的经验,很多很杂,自己实践一下,才能自己真正理解。

CSS中三大position属性值用法解读

本文向大家简单介绍一下CSS中position属性值的使用,主要包括static:默认值,relative:相对定位,absolute:绝对定位三种,主要用于定位html元素的位置,并影响元素块生成的方式,相信本文介绍对你一定会有所帮助。

CSS中position属性值用法

CSS中position属性有4种可选值:static,relative,absolute,fixed,用于定位html元素的位置,并影响元素块生成的方式。这里我们重点看一下position属性的三个取值定义:position:static、absolute、relative。

static:默认值

如果没有指定position属性值,支持position属性的html对象都是默认为static,可以这么理解:把html页面看作一个文档流,源代码中各个标签的先后位置就是它们所对应的对象的呈现次序,所有取值为static的对象都按照你所编写的html标签的顺序依次呈现。

relative:相对定位

此position属性值保持对象所在文档流中的位置,也就是说它具有和static相同的呈现方式,它同样占有在文档流中的固定位置,后面的对象不会侵占或覆盖;与static属性值不同的是,设置了relative的对象,可以通过top,left,right,bottom属性设定自己的新显示位置,这4个属性的取值是相对于文档流的前一个对象的,你可以自由设置这4个属性偏移到新的位置而不对文档流中的其他对象产生任何影响,原来的页面呈现仍然会我行我素.

absolute:绝对定位

和relative不同的是,这个position属性值会将当前对象拖出文档流,后面的对象会占有原来的位置,也就是说,当前对象的呈现是独立显示的,但是它的位置在指定top,left,right,bottom任一属性之前仍是有继承性的,这时的4个属性的取值是相对于浏览器的,和文档流无关了。如果把示例中的B区域设定为absolute而不指定4个位置属性,通过设定margin来改变它的相对位置,用这个方法可以解决前面提到的问题2。

编程网温馨提示:

属性值为absolute对象的z-index属性可以设置层叠显示的次序,它是直接有效的;而属性值为relative对象的z-index属性在设置时要小心,把当前对象的z-index设置为-1是不行的,在firefox中它会无法显示(注意,不是说浏览器有误,而是指如果父对象是根元素body,那么z-index是无效的,任何z-index设置都不会显示在根元素之后,除了IE的解析bug,感谢#19提示),必须设置为0以上,我们如果想让别的对象挡住它,只有将其他对象也设置position为relative,并将z-index属性取一个比它大的值即可。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯