fixed不以body定位,相对于父级容器定位问题

 

经常在做一个页面的时候,希望一个元素不希望随着滚动条的滚动而动,这个时候就要用到fixed了
但是又不希望它根据整个窗口的左右两边定位(因为如果分辨率变小了,它与中间页面的距离就会变了)
希望达到的效果如下图所示

解决方法:只需要使用margin定位就可以了

如图,最先开始使用left,right进行定位

 

两个按钮是写在中间内部页面里面的

效果在不同分辨率下,与中间页面显示距离有差别
1920px分辨率下:

 

1366px分辨率下:

 

采用margin定位后,就会根据父级元素定位 (例子中的div .caseDetail类 ):

 

效果如下,无论何分辨率都以中间为定位,效果达成:

 

 


 

 

position:fixed 相对父元素定位

position:fixed是对于浏览器窗口定位的,要实现相当于父元素定位,可以这样:

不设置fixed元素的top,bottom,left,right,只设置margin来实现。

这种方法本质上fixed元素还是相当于窗口定位的,实现效果上是相对于父元素定位。

此外,position:fixed元素会受到父元素的影响,而出现不能以窗口进行定位:

1. 因为fixed元素并不总是相对于视窗进行定位的,父元素发生变换,也就是transfrom属性发生改变,如平移或旋转,会对固定定位的子元素产生影响 例子:固定定位不固定

2. 如果父级元素的z-index的层次比同级元素低,就算fixed的z-index比父级高,也会被父级同级元素遮挡。

因此,position:fixed元素若要以窗口进行定位,最好是放在body根标签下

 

转载于:https://www.cnblogs.com/shimily/articles/11159019.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值