And*_*tts 72 translate css3 percentage translate3d
翻译元素Y轴50%会将其向下移动50%的高度,而不是父母身高的50%,正如我所料.如何告诉翻译元素将其转换百分比基于父元素?或者我不明白什么?
小智 37
在translate中使用百分比时,它指的是自身的宽度或高度.看看https://davidwalsh.name/css-vertical-center(演示):
关于CSS变换的一个有趣的事情是,当使用百分比值应用它们时,它们将该值基于它们正在实现的元素的维度,而不是像top,right,bottom,left,margin和padding这样的属性. ,仅使用父级的维度(或者在绝对定位的情况下,使用其最接近的相对父级).
Kok*_*oko 25
您可以使用vw和vh根据视口大小进行翻译
@keyframes bubbleup {
0% {
transform: translateY(100vh);
}
100% {
transform: translateY(0vh);
}
}
Run Code Online (Sandbox Code Playgroud)
zol*_*olv 15
.child {
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
/* Backward compatibility */
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
}
Run Code Online (Sandbox Code Playgroud)
这个怎么运作:
小智 9
在支持它的浏览器中,您现在可以使用容器单位将元素平移父宽度/高度的百分比。
首先将父级的容器类型属性设置为“size”。这使子级能够查询父级维度。
.parent { container-type: size }
Run Code Online (Sandbox Code Playgroud)
接下来使用 cqh(容器查询高度)单位平移子元素。1cqh 等于父级高度的 1%。
/* shift child down by 50% of parent height */
.child { transform: translateY(50cqh) }
Run Code Online (Sandbox Code Playgroud)
要在translate属性中使用百分比,您必须使用Javascript:http://jsfiddle.net/4wqEm/27/
HTML代码:
<div id="parent">
<div id="children"></div>
</div>?????????????
Run Code Online (Sandbox Code Playgroud)
CSS代码:
#parent {
width: 200px;
height: 200px;
background: #ff0;
}
#children {
width: 10%;
height: 10%;
background: #f00;
}
Run Code Online (Sandbox Code Playgroud)
Javascript代码:
parent = document.getElementById('parent');
children = document.getElementById('children');
parent_height = parent.clientHeight;
?children_translate = parent_height * 50/100;
children.style.webkitTransform = "translateY("+children_translate+"px)";??????????????????????????
Run Code Online (Sandbox Code Playgroud)
我希望如果你有任何其他问题,我可以帮助你并告诉我.