似乎使用transform:translateY(1px);也导致元素获得额外的位置:相对; – 行为.
有没有办法来阻止这个?
这是一个例子on codepen.io.
我想将白盒绝对定位到绿色盒子,而不是父盒子(红色).
解决方法
一种选择是通过在#three周围包裹一个元素来取代/否定父级的定位(在这种情况下,我添加了.displacement元素).
绝对定位此包装元素,并将其定位为覆盖父元素(使用top:0 / right:0 / bottom:0 / left:0).然后通过给出相对于父元素的负翻译值来替换元素.
<div class="displacement"> <div id="three"></div> </div>
.displacement { -webkit-transform: translateY(-25px) translateX(-25px); transform: translateY(-25px) translateX(-25px); position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 200%; height: 200%; }
在这样做时,元素#three绝对相对于#one定位,并且父#2的翻译定位被有效地移位.
.displacement { -webkit-transform: translateY(-25px) translateX(-25px); transform: translateY(-25px) translateX(-25px); position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 200%; height: 200%; } #three { background-color: white; height: 25px; width: 25px; position: absolute; left: 0; bottom: 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。