position:relative和absolute的配合

/*分享记录学习*/

编辑器: Sublime Text 3    浏览器:Firefox

HTML是承载网页的躯体,CSS为它提供了美丽的外表,JS为它注入了灵魂

float元素相信大家都不陌生,在脱标流中它为我们提供了标签的浮动,使得网页的显示更具特色

不过,float的实现也可以被其他元素替代的,可能做起来会有点傻,甚至存在代码冗余的情况

position,有四种可选属性值:

1.static: 默认值,没有定位

2.relative: 元素相对定位

3.absolute:元素绝对定位(html)

4.fixed:元素绝对定位(浏览器)

3和4有什么区别?absolute所生成的绝对定位元素是相对于static以外的第一个父元素进行定位

俄罗斯套娃-代码
浏览器显示

当我们给黑方块添加一个absolute:

给demo4添加一行代码
浏览器显示

我们可以发现,demo4所代表的黑方块直接脱离 套娃组织 ,去网页显示的最底边了,这就说明,demo4相对于我们的body标签做了绝对定位>>>bottom(底部)为0,即贴近body标签的底边

然后将demo4的position由absolute改为fixed显示也是如此 (浏览器图片和代码修改图片就不放了),这样子看上去好像两个属性值实现的都是一模一样的,可是现在让我们给demo1所代表的红方块给它relative的属性值,并把demo4的position更改回absolute


浏览器显示

可以发现,这时候的demo4黑方块不再是贴近网页显示的底边了,而是贴近了demo1红方块的底边>>>demo4相对于demo1做了绝对定位,同理,当我们将demo1的position替换给demo2时:

demo4位置再次发生改变,这一次它贴近了demo2所代表的蓝方块的底边

那将demo4的position属性值改回fixed后:

demo4的position属性值更改为fixed
浏览器显示

我们发现,fixed属性值的demo4依旧贴近于网页显示的底边,没有去理会demo2上设置的relative,难道是针对demo2这个蓝方块?那我们换demo3再试


代码修改如示
浏览器显示

它依旧如此……你大可这样子理解:absolute,会根据其他父元素所设置relative变更自己的绝对定位显示,而fixed不会,或者说,它至始至终都是相对于body标签做绝对定位,是真正的痴情人!

不过我们要讲述的主题并不是这个……relative的作用可不单单是给absolute拿来做定位的,它自己本身也可以实现

代码修改
浏览器显示

我们可以发现,demo4的绝对定位依旧是相对于demo3的,而且demo3也距离左边有了100px的空间,可是单纯如此我们无法判断出demo3是相对于哪个元素做的定位,有可能是demo2,demo1,body标签……这是我前期编写代码所没有考虑到的,那这个就交付给你们自己去验证了,大体上是让四个方块之间有分离,从一开始四个方块左上角的贴合,变成“回”字形状,添加margin属性再设置距离就行,此处暂且不提

最后,照应标题,relative如何和absolute配合,我相信你们都应该理解我所表达的,给父级元素添加relative,然后在子级元素使用absolute,子级元素就会直接相对于此父级元素做绝对定位>>>毕竟html内容,有些时候还真的必须要有“套娃”的代码

那我们可以使用这个配合做什么好呢?float,浮动元素,可以是元素居右对齐或居左对齐,达到同级div同行显示的效果……而我们只要给这些同级div套在同一个父级div下面,就可以给父级div一个relative属性值,它所属下的同级div我们都可以让它们相对于这个父级做绝对定位……

这可真是一个没办法中的办法,傻瓜式操作,今天,你学会了吗?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、默认定位 HTML结构如下: 和 是为了与窗口的顶部隔开距离便于观察,neighboor和child2的div...
    流浪java阅读 5,945评论 0 0
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,189评论 5 15
  • /*有三种状况将使得元素离开文档流而存在,分别是浮动、绝对定位、固定定位(脱离文档流没有撑大父元素)*/ /***...
    hillAJ阅读 2,972评论 0 0
  • js中数组的方法种类众多,有ES5之前版本中存在的,ES5新增,ES6新增等;并且数组的方法还有原型方法和从obj...
    小碳儿阅读 2,682评论 0 0
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 9,804评论 0 13

友情链接更多精彩内容