2017-05-12 24 views
0

私はホバー上を回転しているこのサークルを持っていますが、それは中心になく、なぜ(私は '変換元:センターの中心'を追加しましたか)わからない また、 cssについてはごくわずかしか知りませんが、2つの連続したセレクタがある場合はどういう意味ですか?CSSの回転が中心にない

は、ここに私のコードです:

#welcome:hover #welcomeavatar{ 
 
-webkit-transition: all 0.7s ease-in-out; 
 
-moz-transition: all 0.3s ease-in-out; 
 
-o-transition: all 0.3s ease-in-out; 
 
transition: all 0.3s ease-in-out; 
 
-ms-transform: rotate(180deg); /* IE 9 */ 
 
-webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */ 
 
transform: rotate(180deg); 
 
transform-origin : center center; 
 
} 
 

 
#welcome #welcomeavatar{ 
 
    -webkit-transition: all 0.7s ease-in-out; 
 
    -moz-transition: all 0.3s ease-in-out; 
 
    -ms-transition: all 0.3s ease-in-out; 
 
    -o-transition: all 0.3s ease-in-out; 
 
    transition: all 0.3s ease-in-out; 
 
    transform-origin : center center; 
 
} 
 
    
 
#welcome:hover #speechbubble{ 
 
-webkit-transition: all 0.7s ease-in-out; 
 
-moz-transition: all 0.3s ease-in-out; 
 
-o-transition: all 0.3s ease-in-out; 
 
transition: all 0.3s ease-in-out; 
 
margin-left:120px; 
 
} 
 

 

 
#welcome #speechbubble{ 
 
    -webkit-transition: all 0.7s ease-in-out; 
 
    -moz-transition: all 0.3s ease-in-out; 
 
    -ms-transition: all 0.3s ease-in-out; 
 
    -o-transition: all 0.3s ease-in-out; 
 
    transition: all 0.3s ease-in-out; 
 
} 
 

 
#welcome #speechbubble{ 
 
    -webkit-transition: all 0.7s ease-in-out; 
 
    -moz-transition: all 0.3s ease-in-out; 
 
    -ms-transition: all 0.3s ease-in-out; 
 
    -o-transition: all 0.3s ease-in-out; 
 
    transition: all 0.3s ease-in-out; 
 
}
<div id="welcome"> 
 
<div id="welcomeavatar"><img src="http://www.for-example.org/img/main/forexamplelogo.png"></div> 
 
<div id="speechbubble"></div>

スニペットは本当に何が起こっているか表示されていないが、あなたは私のコードを持っており、ここで実際の結果だことができますので、それだけだ。www.typhotoshop.tumblr .com

ありがとうございました!

+0

回転している要素(#welcomeavatar)が表示されているため、中心から外れています。ブロック:そのコンテナの幅全体を占めるブロック。 204pxの#welcomeavatarに幅を追加してみてください。 – EricL

+0

実際に#welcomeavatarの幅と高さは200ピクセル(画像と同じ)にする必要があります。次に、イメージにいくつかのスタイルを追加して、ウォブルを取り除く必要があります。画像を表示する:ブロックし、200pxの高さ/幅を追加します。 – EricL

+0

画像と#welcomeavatar要素の寸法が一致せず、画像が正方形ではないため、回転した寸法に一致してもシームレスになりません。あなたの画像は2630x2565という自然な解像度を持っているので、回転にわずかなぐらつきがあります。 –

答えて

0

回転は実際には中心ですが、回転を適用するdivは画像よりも大きくなります。下のスクリーンショットを参照してください。

あなたが回転しているdiv要素を正確に(すなわち内部の画像と同じサイズであることを確認しているが、完全にDIVから幅/高さを削除するか、幅を追加したいと思う

/高さは画像と同じです)。

また、#speechbubblemargin-leftもホバー上で増加するので、再び回転divが左に移動します。ホバーとノーホバーでマージンを同じにしても動きません。

希望に役立ちます。

+0

divの幅と高さを削除していただきありがとうございます。時間があれば、2つの連続するdivを置くのはどういう意味ですか?そして、それが目的だったマージンについて! –

+0

うれしかったです。私はあなたが「2つの連続するdivを配置する」ということを意味していません。どこに置く?なぜ?説明できますか? – dmoz

+0

この行の類義語: #welcome #welcomeavatar { -webkit-transition:すべて0。7sイージー・イン・アウト; -moz-transition:すべて0.3秒の使いやすさ。 -ms-transition:すべて0.3秒のイージーアウトです。 -o-transition:すべて0.3sの使いやすさ。 トランジション:すべて0.3秒のイージーアウト。 変換元:center center; } #が2つありますが、その結果は分かりません。 –

0

どうやらスタックオーバーフローの方法がわかりません。実際の答えとしての元のコメント:

回転している要素(#welcomeavatar)が表示されているので中心から外れています:コンテナの幅全体を占めるブロックです。 インラインブロックを表示させることは、不要な空白を挿入できるため、理想的ではありません。

#welcomeavatarの幅と高さは200px(画像と同じ)にする必要があります。次に、イメージにいくつかのスタイルを追加して、ウォブルを取り除く必要があります。画像を表示する:ブロックし、200pxの高さ/幅を追加します。

関連する問題