翻譯元素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聲明,如頂部,頂部邊距或頂部填充,這些都基於父容器。 –
謝謝,它並沒有立即顯示出百分比值是多少百分比。 –
接下來你會知道,他們會讓百分比的字體大小的平均百分比! (哦...) –