本文介绍: 3、absolute改造;因为fixed也相当于是定位的一种,所以我们当然也可以leftright来进行定位了,然后left的值扩大,同时将width的百分比减少,从而使得sondemo宽度达到一致,从而起到一种视觉上的欺骗效果。最近在编码过程中,遇到过这样一个问题代码如下,我们有一个父级,他有一定的宽度,在他的里面两个子级,其中一个是绝对定位的,且要求他们的宽度都和父级保持一致,然后问题就出现了,我们会发现,有了定位son他的宽度远远的超出了我们父级宽度,那么问题是怎么引起的呢?

  最近在编码过程中,遇到过这样一个问题代码如下,我们有一个父级,他有一定的宽度,在他的里面有两个子级,其中一个是绝对定位的,且要求他们的宽度都和父级保持一致,然后问题就出现了,我们会发现,有了定位的son他的宽度远远的超出了我们父级的宽度,那么问题是怎么引起的呢?

 经过各种百度之后发现,原来给子元素加了position:fixed这个属性之后,他就默认相对于window去定位了,就相当与你将这个元素相对于window加上了position:absolute的属性,所以给他加百分比长度的话就是相对于window的百分比。那么解决方案哪些呢?我们来一一尝试

 1、left:0;right:0;因为fixed也相当于是定位的一种,所以我们当然也可以leftright来进行定位了,然后将left的值扩大,同时将width的百分比减少,从而使得son和demo的宽度达到一致,从而起到一种视觉上的欺骗效果。(PS:请谨慎使用

 2、calc();关于calc的具体使用将在我后面的播客中提出,在这里,我们可以son的width由100%改为calc(100%-324px),这里这个长度不知道是否有规律,还是要自己找,相对来说适应性就不是很好。

3、absolute改造;因为我们上面提到过,本质上说,fixed就是一个相对于windowabsolute,但是absolute却可用relative来指定他相对于谁定位,所以我们在这里可以将fixed绝对定位用absolute来进行改造。(PS:如果代码改动不大的情况下建议使用,毕竟更好控制,这种就大家自己操作了哟)

4、给fathor加fixed属性;我们还可以fathor加position:fixed;属性,从而让父元素也相对于window定位,同时,子元素也是相对于window的定位,所以他们就都是和window产生了联系,从而也就在一定程度上保持了一致。(PS:这种情况适用于fathor是最外层元素的情况下,否则的话fathor相对于他原来的父级的定位就需要进行重新定义了,而且很大可能会破坏原有样式

原文地址:https://blog.csdn.net/m0_49471668/article/details/128457024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_9753.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注