翻译元素Y轴50%会将其向下移动50%的高度,而不是我所期望的父母高度的50%。如何告诉翻译元素将其翻译成父元素的百分比?或者我不理解什么?根据元素高度和宽度翻译X和Y百分比值?
回答
要使用比例在翻译属性,你必须使用JavaScript:http://jsfiddle.net/4wqEm/27/
HTML代码:
<div id="parent">
<div id="children"></div>
</div>
CSS代码:
#parent {
width: 200px;
height: 200px;
background: #ff0;
}
#children {
width: 10%;
height: 10%;
background: #f00;
}
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)";
我希望我能帮助你,并告诉我,如果你有任何其他问题。
在翻译中使用百分比时,它指的是其自身的宽度或高度。看看https://davidwalsh.name/css-vertical-center(demo):
有关CSS的一个有趣的事情转化是,用百分比值应用它们时,他们的基地上,他们正在上实现的元件的尺寸是价值,而不是属性如顶部,右侧,底部,左侧,边距和填充,它们只使用父级的尺寸(或者在使用绝对定位的情况下,使用其最近的相对父级)。
这应该是公认的答案。谢谢! – Aron
你也可以使用一个额外的块,并使用过渡为它除了子节点
HTML代码:
<div id="parent">
<div id="childrenWrapper">
<div id="children"></div>
</div>
</div>
CSS应该是这样的
#parent {
position: relative;
width: 200px;
height: 200px;
background: #ff0;
}
#childrenWrapper{
width: 100%;
height: 100%;
}
#children {
width: 10%;
height: 10%;
background: #f00;
}
您可以使元素绝对定位,并使用left和top属性将百分比值作为父项。
你的陈述是完全正确的,来自非常翻译的元素的百分比。而不是在你的情况下使用translate属性,你应该使用绝对定位来保持相对于父div。我绝对在这里垂直定位你的红色div:(不要忘记添加相对于父div的位置。它已经被定位比静态默认等):
body {
margin: 0;
width: 100%;
height: 100%;
}
body > div {
width: 200px;
height: 200px;
background: #ff0;
position: relative;
}
body > div > div {
width: 10%;
height: 10%;
-webkit-transform: translateY(-50%);
background: #f00;
position: absolute;
top: 50%;
}
但是顶部和左侧的动画并非硬件加速,是吗? – trusktr
我使用only CSS的是什么工作原理是:
.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%);
}
它是如何工作的:
- 顶部和左侧定位根据父坐标移动子部件。子窗口小部件的左上角将出现在父项的中心(这不是我们现在想要的)。
- 翻译将根据其大小(不是父级)将子部件-50%移动到顶部和左侧。这意味着,小部件将完全移到其本身的中心。
- 1. 元素x,y,宽度,高度翻译到不同的维度
- 2. CSS宽度:X百分比+/- Y像素
- 3. 宽度和高度百分比CSS IE8
- 4. css百分比高度和宽度
- 5. 将元素高度/宽度设置为百分比和像素值的组合
- 6. 如何根据x-y坐标和宽度高度安排多个html元素?
- 7. CSS宽度/高度像素和百分比计算组合?
- 8. 像素边框和百分比宽度
- 9. 元素的高度百分比的宽度。 HTML,CSS
- 10. 如何设置视频元素的高度和宽度百分比
- 11. 元素与百分比宽度
- 12. 固定元素的百分比宽度?
- 13. CSS百分比宽度和高度以及分辨率问题
- 14. 根据元素的高度和宽度的百分比变化增大或减小字体大小
- 15. 百分比高度VS父元素
- 16. HTML元素百分比高度问题
- 17. 页面上的位置元素根据其高度和宽度
- 18. 获取元素的CSS属性(宽度/高度)值(如百分比/ em/px/etc)
- 19. extJs(设定高度和宽度)百分比
- 20. Ckeditor无法使用百分比的图像宽度和高度
- 21. 将宽度和高度设置为百分比
- 22. Android百分比布局宽度和高度应该指定
- 23. 如何在Android中进行百分比高度和宽度?
- 24. 表格百分比高度和宽度不工作的CSS类
- 25. CSS - 使用百分比的宽度和高度为ems
- 26. 跨度百分比宽度
- 27. 根据视口的宽度和高度设置元素的高度
- 28. 翻译(x,y,z)中的百分比值不起作用
- 29. x和y翻译
- 30. PictureBox图片精选X和Y以及高度和宽度
好吧,它看起来像没有办法绕过它。按百分比翻译的CSS采用正在翻译的元素的百分比来计算移动的距离。它不像您典型的css声明,如顶部,顶部边距或顶部填充,这些都基于父容器。 –
谢谢,它并没有立即显示出百分比值是多少百分比。 –
接下来你会知道,他们会让百分比的字体大小的平均百分比! (哦...) –