关于css中的position这个属性,在使用的时候,有时很强大,有时又让人很无奈。

强大的时候,对于div中的一些小物件不方便使用margin或者padding的时候,给与position:absolute;再配备left、right、top和bottom,基本上就是想放哪里放哪里了。

让人无奈的时候,就是我们一旦滥用了position这个定位属性,就会让自己的布局飞的满天是,又因为z-index没有设定好,基本上,整体的布局就会让你手足无措,找原因的话,又非常麻烦,最后,恐怕只能推倒重做了。

所以,对待position这个属性,我们要详细的了解到它运行的原理,以及应用的场景,这样,我们才可以在想用的时候完美的驱使它来完成我们想要的效果。

废话不多说,直接上步骤,先说position的概念吧

position,我们百度一下,就知道这个单词的意思是方位,在css中,就是定位的意思,属性名字是 position,属性值有五个,分别是 static(默认定位)、absolute(绝对定位)、relative(相对定位)、fixed(固定定位)、inherit(继承定位,不常用)

书写规则:

position:static|absolute|relative|fixed|inherit

每个属性值都介绍一下吧

   1、position:static(默认定位)

顾名思义,就是我们平常书写的时候,每个div在文档流中默认的排版,就是static属性值,它不会让div或者其他元素脱离文档流,而是遵循排版的原则,从上到下,块级元素换行,行内元素不换行等等通用原则,所以,如果不用定位属性,那么这个position就不用设置。

      2、position:relative(相对定位)

相对定位,就是相对于自己本身进行定为移动,它不会脱离文档流,也就是说,我给一个元素设定了这个属性,那么这个文件还会在这个文档流中来回移动,至于怎么移动,下面再讲。

      3、position:absolute(绝对定位)

跟相对定位不同,它是相对于拥有相对定位属性父元素进行定位移动,它会脱离文档流。

如果父元素中的所有子元素都设置了absolute,那么所有的子元素都会浮起来,然后堆叠到一块儿,所以为了把各个元素摊开显示,我们需要移动这些元素,而移动这些元素的方法,就是直接是style样式表中书写:left、right、top、bottom四个属性,然后在属性的后面写上px(像素)、%(百分比)等可以表示距离的单位。

  在这里,我们要特别强调,left和right不能同时使用,top和bottom不能同时使用。

  并且,这四个元素,都是相对于拥有相对定位(relative)属性的父元素进行移动的。如果父元素没有相对定位,那么绝对定位就是相对于body进行定位的。

  所以,为了不让自己设置的元素跑飞了,那就记得给父元素设置relative吧。

  4、fixed(固定定位)

  这个定位是相对于浏览器窗口进行的定位,移动方法跟相对和绝对定位一样的。

  它也会脱离文案流,我们常见的侧边栏或者广告图就是用这个功能实现的。很实用,很强大的功能。

  5、inherit(继承定位),就是从父元素继承position定位属性,不怎么常用。

  讲到这里,我们就涉及到一个z-index (层级)的问题。刚才我们讲过,如果给子元素全部设置了absolute,那么所有的子元素就会堆叠在一起,互相遮盖。

  如果我们需要在一个元素上堆叠好多层,那怎么给它们排序呢。这就需要用到z-index属性了。

  z-index属性的属性值是数字。数字越大,那么它就显示的最考上,比如说吧,

  z-index=0 的元素就会再 z-index=1的下面显示,z-index=10会再z-index=8上面显示,所以,堆叠它们的显示顺序,设置z-index就可以了。

  当然,如果不设置z-index的话,默认的,后面的元素会遮盖前面的元素。

  使用时需注意的问题:

  1、float属性不可以和position属性共用,切记!

  2、使用absolute时记得给父元素加relative

  3、除了用left和top外,还有right和bottom,活学活用

  4、能不用position就不用position,毕竟容易把布局搞乱

  5、Javascript中调用position的方法是:div.style.positio=”absolute”类似 div是变量名

  上面只是简单的讲了一下position的基本东西,如果你在这里面没有了解到你想要的答案,你可以在下面给我留言,我会积极回复的。

  最后,积极交流,共同进步!

转载于:https://www.cnblogs.com/lianshouluguo/p/5851168.html

position定位——让人又爱又恨的属性相关推荐

  1. 谈谈Nancy中让人又爱又恨的Diagnostics【上篇】

    前言 在Nancy中有个十分不错的功能-Diagnostics,可以说这个功能让人又爱又恨. 或许我们都做过下面这样的一些尝试: 记录某一个功能用到的相关技术信息 记录下网站的访问记录 全局配置某些框 ...

  2. 360 一个让人又爱又恨的公司

    今天中午吃完饭,看到了一篇博客,说51cto要做11年的博客评选,本博客我也转贴10年的博客排行,有点兴趣,就点进去看了,没想到排行第一的网路游侠,之前对此人有些了解,也看了他的一些博客.由于好奇有顺 ...

  3. html5超萌哈士奇,哈士奇,是一种让人又爱又恨,又拥有自己独特风格的雪橇犬...

    导语:你是否有见过一种气场十足,身形和外表像狼,表情有些凌厉,两双眼睛时常感觉像在翻白眼,偶尔让人觉得有些囧的狗?这种 看似高冷的狗,喜欢的人会觉得很帅酷,而害怕的人会受它外形体积影响担心它具有攻击性 ...

  4. 让人又爱又恨的C语言!

    作为一门古老的编程语言,大家熟知它00000000000不仅是因为拥有48年的发展历程,更主要还是因为当下大部分程序员走入编程世界第一个学习的语言就是C语言. 而近年来高速发展的物联网和智能设备,又把 ...

  5. 深度体验特斯拉新Model S:游戏体验翻车,方向盘让人又爱又恨

    来源|车东西 文|克克 编辑|晓寒 关于新Model S,你想看的都在这了! 特斯拉刚刚开始交付旗舰车型到底有多强?现在终于有答案了. 自6月10日新款Model S Plaid车型的交付仪式完成后, ...

  6. 让人又爱又恨的Mysql多表查询

    在SQL开发当中,多表联查是绝对绕不开的一种技能.同样的查询结果不同的写法其运行效率也是千差万别.在实际开发当中,我见过(好像还写过~)不少又长又臭的查询SQL,数据量一上来查个十几分钟那是家常便饭. ...

  7. 让人又爱又恨的C语言

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.学习目标 二.学习编程方法 二.学习编程方法 总结 前言 提到C语言,大家都不陌生,早早的就开始学,但是一直都未得 ...

  8. 让人又爱又恨的氮化镓器件 --- 记录人生第一次炸机

    宽禁带器件也不是什么新鲜词儿了,我们常用的宽禁带电力半导体有两类 - 氮化镓GaN器件和碳化硅SiC器件. 之前尝试过用SiC器件研发了一款图腾柱PFC整流器,别的不说,这SiC是真的耐造.从头到尾, ...

  9. “睡你妹闹钟”——你还真是让人又爱又恨啊

    对于年轻一辈的上班族来说,早起一直都是无比痛苦却又无法逃避的事情.那么有没有什么好用的手机APP软件能够叫醒那些"起床特困户"呢?当然有啊!那就是--睡你妹闹钟. 这款被戏称为世界 ...

最新文章

  1. ARM CPU自动调度神经网络
  2. 打造高端网站应该具备哪些品质?
  3. Java技术栈---语言基础
  4. 50种Java编程技巧,越早知道越好!(建议收藏)
  5. c语言数据类型上机题,2011计算机二级C语言自测题:数据类型及其运算
  6. STM32L562开发板开箱记 STM32L562E-DK Discovery kit电路功能分析
  7. 随笔(3)——智慧医养融合:从智能交互到交互智能
  8. Tinker在sdk升级后无法成功打补丁包的问题
  9. python的easyocr图像文字识别
  10. 根据报告数据,2021 年 Q1,全球小说 App 推广榜 Top20 里面,有 11 个 App 来自中国厂商。最新版本已经上线
  11. 大数据笔记-外存算法
  12. NISP一级考试题目复习
  13. 客户端与服务器信息交互的流程,客户端与服务器的交互流程
  14. 1024,程序员节!快乐!
  15. ES6:ES6 的新增语法
  16. 安卓11?快!扶我起来继续学
  17. 联想卡在logo界面_联想笔记本开机卡在lenovo画面无法进入桌面
  18. 涉密资质要求的保密室建设标准有哪些?
  19. 配置及执行spark、hadoop遇到的几个报错解决
  20. 【快速开发VoIP】(原理篇)

热门文章

  1. Centos7下安装Python3.5
  2. yiilite.php,缓存 - yii在哪些情况下可以加载yiilite.php?
  3. 6 rethad 自定义硬盘_图文详解zabbix配置自定义监控项过程
  4. 针对标签属性data-**的使用
  5. 你真的了解静态变量、常量的存储位置吗?
  6. leetcode739 每日温度
  7. leetcode7 整数反转
  8. 开始入坑深度学习(DeepLearning)
  9. LeetCode - Easy - 155. Min Stack
  10. 《Python Cookbook 3rd》笔记(1.3):保留最近N个元素