2015-04-15 1 views
27

Можно ли применить CC-перевод X и Y на один и тот же элемент?translateX и переводY на том же элементе?

Если я пытаюсь этого translateX переопределяется translateY:

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

возможно дубликат [Как применить несколько преобразований в CSS3?] (Http://stackoverflow.com/questions/10765755/how-to-apply-multiple-transforms-in-css3) – Jeroen

+0

Я понимаю, что это демонстрация, но просто помните, чтобы включить префикс браузера, а также – jbutler483

+2

@Jeroen Не дубликат, это на самом деле другое. – mattytommo

ответ

41

Вы можете сделать что-то вроде этого

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

В вашем случае, вы можете применить как X и Y переводы с translate недвижимость:

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

[source: MDN]

для примера, это будет выглядеть следующим образом:

.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>


Как заявил этот ответ How to apply multiple transforms in CSS3? вы можете применить несколько преобразований на одном элементе, указав их в той же декларации:

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

Вы можете комбинировать X и Y переводит в одно выражение:

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

И, в общем, несколько преобразований в единое правило:

transform: translateX(10px) translateY(20px) scale(1.5) rotate(45deg);