【发布时间】:2020-06-06 21:56:25
【问题描述】:
有没有办法使用伪元素将元素的内容向右推,得到下图中的结果?
现在,这是 html 代码:
<div class="center" style="background-color: cyan;">
<div class="outside-right">
Content
</div>
</div>
这些是 CSS 类:
.center {
position: absolute;
top:50%;
left:50%;
transform: translate(-50%, -50%);
}
.outside-right{
transform: translateX(100%);
}
问题在于 CSS 动画在更改元素的 transform 属性时,它会覆盖类 .outside-right transform 并且元素会在开始动画之前快速回到其父级的中心。
所以我尝试更改.outside-right 类,将::before 伪元素与width:100% 放在一起,以便推送该元素的内容。但似乎没有什么可以让它发挥作用。
我试过了:
CSS:
.outside-right-using-pseudo-element::before {
content: '';
display: inline-block;
background-color: red;
width: 100%;
}
还有
.outside-right-using-pseudo-element::before {
content: '';
float: left;
background-color: red;
width: 100%;
}
HTML
<div class="center" style="background-color: cyan;">
<div class="outside-right-using-pseudo-element">
Content
</div>
</div>
有什么方法可以让它工作吗?
【问题讨论】:
-
使用 jsfiddle 或 codepen 之类的代码测试器快速进行更改并立即查看结果
-
@TemaniAfif 它也不起作用。此外,推送的内容需要位于其容器的边缘,因此宽度必须是相对的。
标签: html css css-animations pseudo-element web-frontend