首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止添加转换的定位元素作为文档流的一部分添加?

如何防止添加转换的定位元素作为文档流的一部分添加?
EN

Stack Overflow用户
提问于 2022-06-06 10:42:42
回答 1查看 34关注 0票数 1

你可以在这里看到一个互动的例子。我希望添加transform: translate的蓝色div位于红色div下面,但不需要滚动(因此不属于文档流的一部分)。(我想将蓝色div动画化,使其出现在红色的div前面,但由于它是文档流的一部分,所以不能正确地显示它)。

为什么添加transform属性立即将不再是文档流一部分的position: absolute元素转换为文档流的一部分?

谢谢!

代码语言:javascript
复制
*,
 ::before,
 ::after {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.inset-0 {
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
}

.h-96 {
  height: 24rem;
}

.w-96 {
  width: 24rem;
}

.translate-y-full {
  --tw-translate-y: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.overflow-y-scroll {
  overflow-y: scroll;
}

.bg-yellow-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 204 21 / var(--tw-bg-opacity));
}

.bg-red-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 113 113 / var(--tw-bg-opacity));
}

.bg-blue-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(96 165 250 / var(--tw-bg-opacity));
}
代码语言:javascript
复制
<div class="relative h-96 w-96 overflow-y-scroll bg-yellow-400">
  <div class="absolute inset-0 bg-red-400">
    <div class="absolute inset-0 translate-y-full bg-blue-400"></div>
  </div>
</div>

代码语言:javascript
复制
  [1]: https://play.tailwindcss.com/xDKID0dPV1
EN

回答 1

Stack Overflow用户

发布于 2022-06-06 20:05:23

我不知道您为什么要嵌套绝对定位的元素,但是下面是我如何在不了解您的基本原理的情况下(为这段代码进行缩放)。

代码语言:javascript
复制
:root {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --height: 8rem;
  --width: 8rem;
}

.relative {
  position: relative;
  overflow: hidden;
}

.absolute {
  position: absolute;
}

.inset-0 {
  top: 0px;
  right: -17px;
  bottom: -17px;
  left: 0px;
  overflow: auto;
}

.h-96 {
  height: var(--height);
}

.w-96 {
  width: var(--width);
}

.translate-y-full {
  --tw-translate-y: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.bg-yellow-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 204 21 / var(--tw-bg-opacity));
}

.bg-red-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 113 113 / var(--tw-bg-opacity));
}

.bg-blue-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(96 165 250 / var(--tw-bg-opacity));
}
代码语言:javascript
复制
<div class="relative h-96 w-96 bg-yellow-400">
  <div class="absolute inset-0 bg-red-400">
    <div class="absolute inset-0 bg-blue-400 translate-y-full"></div>
  </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72516485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档