2017-02-08 9 views
2

トランスフォームを中心とし、50%の中心が完全に(相対的な親を使用して)50%正しくないのはなぜですか?トランスフォームを使用したCSSのセンタリング

実施例:中心ない

span[class^="icon"] { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
} 

例:translateX(-50%)後退に何かが(なぜなら-負の値の) 50%を残したので

span[class^="icon"] { 
    position: absolute; 
    top: 50%; 
    right: 50%; 
    transform: translate(-50%, -50%); 
} 

答えて

1

を、その何かを中心にするためにleft: 50%;とペアになっていることを意味します。

right: 50%;を使用する場合は、translateX(50%)を中央に使用してください。

* {margin:0;} 
 
span { 
 
    position: absolute; 
 
    top: 50%; right: 50%; 
 
    transform: translate(50%,-50%); 
 
    background: black; 
 
    color: white; 
 
} 
 

 
body:after, body:before { 
 
    content: ''; 
 
    position: absolute; 
 
    background: red; 
 
} 
 

 
body:after { 
 
    top: 50%; 
 
    left: 0; right: 0; 
 
    height: 1px; 
 
} 
 
body:before { 
 
    left: 50%; 
 
    top: 0; bottom: 0; 
 
    width: 1px; 
 
}
<span>center me</span>

+0

も ​​'direction'のRTLに依存または – Banzay

+0

LTRポジショニングのこのタイプにdirection''の役割を明確にあなた自身の答えを残して自由に感じる@Banzay。 'left'や' right'を使うときは 'right'や' left'を指定しているので、文書の 'direction'が何であるかは関係ありませんhttp://codepen.io/anon/pen/PWdrBG –

+0

それはノートよりも疑問だった。ありがとう:) – Banzay

関連する問題