2015-04-15 17 views
27

Có thể áp dụng CC dịch X và Y trên cùng một phần tử không?dịchX và dịchY trên cùng một phần tử?

Nếu tôi cố gắng này translateX được ghi đè bởi các translateY:

.something { 
     transform: translateX(-50%); 
     transform: translateY(-50%); 
} 
+0

thể trùng lặp của [Làm thế nào để áp dụng nhiều biến đổi trong CSS3?] (Http://stackoverflow.com/questions/10765755/how-to-apply-multiple-transforms-in-css3) – Jeroen

+0

Tôi hiểu đây là một bản demo, nhưng chỉ nhớ để bao gồm tiền tố trình duyệt cũng như – jbutler483

+2

@Jeroen Không phải là bản sao, điều này thực sự khác. – mattytommo

Trả lời

41

Bạn có thể làm một cái gì đó như thế này

transform:translate(-50%,-50%); 
5

Trong trường hợp của bạn, bạn có thể áp dụng cả hai dịch X và Y với translate thuộc tính:

transform: translate(tx[, ty]) /* one or two <translation-value> values */

[source: MDN]

ví dụ của bạn, nó sẽ trông như thế này:

.something { 
    transform: translate(-50%,-50%); 
} 

DEMO:

div{ 
 
    position:absolute; 
 
    top:50%; left:50%; 
 
    width:100px; height:100px; 
 
    transform: translate(-50%,-50%); 
 
    background:tomato; 
 
}
<div></div>


Như đã trình bày bởi câu trả lời này How to apply multiple transforms in CSS3? bạn có thể áp dụng một vài biến đổi trên cùng một nguyên tố bằng cách xác định chúng trên cùng một tuyên bố:

.something { 
    transform: translateX(-50%) translateY(-50%); 
} 
2

Bạn có thể kết hợp X và Y chuyển thành một biểu thức duy nhất:

transform: translate(10px, 20px); /* translate X by 10px, y by 20px */ 

Và, nói chung, một số biến đổi thành một quy tắc duy nhất:

transform: translateX(10px) translateY(20px) scale(1.5) rotate(45deg); 
Các vấn đề liên quan