1.直接在css中设置left生效的前提是必须设置父容器position:absolute或relative,如果不设置则会以最近一个定位的父对象为参考点,。margin-left则不用设position也可以用。

2,通常情况下,我们元素的position属性的值默认为static 就是没有定位,这个时候你给这个元素设置的left,right,bottom,top这些偏移属性都是没有效果的,z-index属性这时也不会有效。

3,对某元素设置了相对定位,它移动后仍占据着原来的空间,不会被其他块填补掉,它的偏移也不会把别的块从文档流中原来的位置挤开,会叠在其他元素之上,可用z-index调。

被设置了绝对定位的元素不占空间,原位置被删除,也可用z-index来设置它们的堆叠顺序。

4,设置为相对定位的元素,会相对于它的起点进行移动。

    设置为绝对定位的元素,绝对定位是“相对于”最近的已定位(非static,即relative,absolute或fixed)祖先元素,如果不存在已定位的祖先元素,那么会“相对于”<body>进行定位,例如设置了top:20,right:30,那元素就会离顶部20,离右边界30,,这里的margin和padding没清零,所以看着top比right大。

5,当两个元素设为relative时,后一个能覆盖到前一个上,前一个不会动。

第一个设了relative,第二个设了absolute,情况与上同。

第一个设为relative,第二个不设,情况上同。

第一个设为absolute,第二个设为relative,情况与上同。

第一个设为absolute,第二个设为absolute,上同,能覆盖且以body为基准。

第一个设为absolute,第二个不设,第一个移位了后,第二个会把原第一个元素的位置占掉,可能会与第一元素重叠。

以下摘录了一段总结:

position的relative和absolute属性要搭配来用,但是当我们布局的时候,尽量不要用position属性来进行定位,用position确实爽,能霸道地直接把元素移动到浏览器显示区域的任何位置,但是这破坏了网页设计的布局嵌套,而且你会发现,用position霸道的改动位置设计出的布局,在浏览器放大缩小的时候,元素就全都乱套了,发生很多错位现象。我们在网页的布局时了,最基本的margin,float一些属性已经可以应付90%的布局情况了,能不用position就不用position,当我们想要耍无赖的时候,比如在页面滚动的时候,始终在浏览器的固定位置显示一个广告窗口(用position:fixed来实现),或者在点击元素跳出弹窗遮盖其他页面元素只允许在弹窗上操作时(用positionLabsolute实现),才会用到position属性,否则,滥用position只会造成页面结构的混乱
--------------------- https://blog.csdn.net/qq_37856300/article/details/82799545 
And :
1,给行内元素绝对定位之后就转化为行内快了。

2,行内元素相对定位后不会转化为行内块。

3,TOP、RIGHT、BOTTOM、LEFT  简称TRBL 。

相对定位和绝对定位 left和margin-left的更多相关文章

  1. 微信小程序 - 相对定位和绝对定位 - 相对路径和绝对路径

    微信小程序 - 相对定位和绝对定位 相对定位relative,绝对定位absolute 相对定位:元素是相对自身进行定位,参照物是自己. 绝对定位:元素是相对离它最近的一个父级元素进行定位. 相对定位 ...

  2. css position相对定位与绝对定位彻底搞懂

    定位position position本身就有给...定位的意思 position属性的值: static ---默认值 relative ---相对定位 absolute ---绝对定位 fixed ...

  3. 辛星和你彻底搞清CSS中的相对定位和绝对定位

    前面我在解读CSS中也说过了关于相对定位和绝对定位的问题.无奈还是有些童鞋表示迷茫,于是另开一篇博客,来具体解读相对定位和绝对定位.希望可以以我的点点星光,让后来者少走弯路. 所谓相对定位,就是设置为 ...

  4. 详解CSS的相对定位和绝对定位(讲得很详细)

    详解CSS的相对定位和绝对定位 CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left ...

  5. div 的相对定位与绝对定位

    网 上也有不少使用div + css进行布局的教程,却存在很多缺陷,一是对css的布局模型讲解不清楚,让人很难理解相对定位.浮动等概念:二是虽然避免了“表格套表格”的缺点,却 带来了“div 套 di ...

  6. WEB学习 -相对定位、绝对定位、固定定位、z-index

    相对定位 相对定位,就是微调元素位置的.让元素相对自己原来的位置,进行位置调整. .不脱标,老家留坑,形影分离 也就是说相对定位不脱标,真实位置是在老家,只不过影子出去了,可以到处飘. 3.相对定位用 ...

  7. CSS——相对定位、绝对定位、固定定位

    相对定位: position:relative 当元素被设置相对定位或是绝对定位后,将自动产生层叠,他们的层叠级别自然的高于文本流,除非设置其z-index值为负值. 并且我们发现当相对定位元素进行位 ...

  8. 详解CSS的相对定位和绝对定位

    CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,to ...

  9. css之position相对定位和绝对定位

    一.position的四个值:static.relative.absolute.fixed. 绝对定位:absolute和fixed统称为绝对定位 相对定位:relative 默认值:static 二 ...

  10. CSS中相对定位与绝对定位

    看了几个讲解定位的博客,觉得还不错,分享之: 博客一:http://blog.sina.com.cn/s/blog_4bcf4a5e010008o0.html 文章中,主要需要参考的有两点: 1,相对 ...

随机推荐

  1. Homebrew macOS 包管理

    1.Homebrew 简介 1.1 Homebrew Homebrew 是一款 macOS 平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理, ...

  2. 反射简化switch语句

    1. 一个简单工厂类 public class FactoryModule { public ModuleIntf getModule(String moduleType) { ModuleIntf ...

  3. Appium 输入 & 符号,实际输入&-

    2018-10-11 12:27:12:178 - [debug] [MJSONWP] Calling AppiumDriver.setValue() with args: [["& ...

  4. Git教程学习(二)

    教程来自: Git教程(廖雪峰的官方网站) 主要命令: $ git log #查看已提交内容 $ git log --pretty=oneline #查看已提交内容(紧凑版) $ git reset ...

  5. c 链表之 快慢指针 查找循环节点

    参考:http://blog.csdn.net/wenqian1991/article/details/17452715 上面分析了 根据这张图 推倒出 数学公式. 刚接触 不能一下弄明白.下面结合上 ...

  6. 转发-基于ASP.NET MVC 4/5 Razor的模块化/插件式架构实现

    基于ASP.NET MVC 4/5 Razor的模块化/插件式架构实现   概述 在日常开发中, 我们经常谈起模块化/插件化架构,这样可既可以提高开效率,又可以实现良好的扩展性,尤其对于产品化的系统有 ...

  7. linux tcp相关参数

    /etc/sysctl.conf文件 /etc/sysctl.conf是一个允许你改变正在运行中的Linux系统的接口.它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,可用来控制Linux网络配置 ...

  8. 阿里巴巴CI:CD之分层自动化实践之路

    阿里巴巴CI:CD之分层自动化实践之路 2018-05-30 摘自:阿里巴巴CI:CD之分层自动化实践之路 目录 1 自动化  1.1 为什么要做自动化?  1.2 自动化的烦恼  1.3 自动化的追 ...

  9. iOS开发 关于启动页和停留时间的设置

    引言: 在开发一款商业App时,我们大都会为我们的App设置一个启动页. 苹果官方对于iOS启动页的设计说明: 为了增强应用程序启动时的用户体验,您应该提供一个启动图像.启动图像与应用程序的首屏幕看起 ...

  10. sql1032n sql6048n db2start启动不了 db2修改hostname

    今天下午把虚拟机上的linux的hostanme改掉了 结果启动DB2的时候发生了这样的错误 SQL6048N  A communication error occurred during START ...