绝对定位input未处于父元素内的原因及修正方案咨询
问题原因
绝对定位元素的定位逻辑是:会向上查找最近的非static定位的祖先元素(所有元素默认position值为static)作为定位容器。你的代码里#leftPane及其父元素#content都未设置非static的position属性,因此input会继续向上寻找有效定位容器,最终表现为相对于视口(或更高层级的非static祖先)定位,导致它贴在页面最右侧,而非#leftPane的右侧。
修复方案
给#leftPane添加position: relative;即可。relative定位不会改变元素自身的布局位置,仅为内部绝对定位元素提供定位参考,完全不影响现有布局的像素精度,适配WebGL画布这类对布局精度要求极高的场景。
修改后的#leftPane CSS代码:
#leftPane { border: solid 1px red; width: 70%; height: 100%; position: relative; /* 新增该行代码 */ }
添加后,input的right: 0px就会相对于#leftPane的右侧对齐,完美贴合父元素边界,同时不会破坏原有布局精度。
内容的提问来源于stack exchange,提问作者Jean
相关产品推荐
相关产品推荐

