2012-09-11 17 views
6

CSS3、HTML(必要な場合やJavaScript/jQueryの)を使用して、私がイメージに270分の90度回転させるとその親DIV /容器を満たすために、それポジションを持っている必要があります。シンプルに聞こえますが、画像が回転すると位置が変わり、その理由や理由がわかりません。 http://jsfiddle.net/UPGkU/2/ - -回転した画像をコンテナ内に配置するにはどうすればよいですか?

は、ここで説明するjsFiddleである私はちょうど青いロゴが正確に赤のdiv内の位置になりたいです。もちろん

、私は特定のオフセットを使用することができますが、別の画像が使用されている場合、それらのオフセットが変化するので、私は本当に一般的な解決策を見つけたいです。

すべてのヘルプは素晴らしいだろう、ありがとう!このシナリオでは、画像を回転させますその周りのポイントを -

+0

は、私はあなたがこのHTTPをしたいと思います位置にを使用しました:/ /jsfiddle.net/UPGkU/5/ –

答えて

1

はあなたがtransform-originを設定する必要が

#image { 
    -webkit-transform: rotate(90deg); 
    -webkit-transform-origin: 0 100%; 
    position : relative; 
    top  : -50px; 
} 

+0

+1、これのみをより一般的にすることができる場合(すなわち、 1: –

8

てみてください。

#image { 
    -webkit-transform: rotate(90deg); 
    -webkit-transform-origin: 0 0; //initially 50% 50% 
    margin-left: 100%; 
} 

90deg fiddle/270deg fiddle

更新:

後者との課題は、その位置がまだを変えないに相対的であると私たちは本当にtransform-originを変更することができないということですマージン値(でも垂直なもの)をa percentage always relative to the width of the containing blockのように計算されるための要素と、私たちはただmargin-top:100%を設定することはできません。次のコードは動作するはずです:

#image { 
    -webkit-transform: rotate(-90deg); 
    -webkit-transform-origin: 0 0; 
    position:relative; 
    top:100%; 
} 
+1

)ピクセル単位での寸法に依存することなく、私はあなたのソリューションを好みます。画像サイズに依存しません – fcalderan

+1

+1。おそらく 'transform-origin 'の初期値が' 50%50% 'であることに言及する価値もあります。 – Ana

+0

ああ、私はそれを270度回転すると溶液が壊れます。 90度か270度回転すると、赤い容器の中に収まる方法はありますか?答えが「いいえ」の場合、それは問題ありません! –

0

こんにちは、今が使用されるこのCSS

#wrapper { 
    width:50px; 
    height:150px; 
    border:2px solid red; 
    position:relative; 
} 
#image { 
    -webkit-transform: rotate(90deg); 
    -moz-transform: rotate(90deg); 
    position:absolute; 
    left:-49px; 
    top:50px; 
} 

Demo

関連する問題