2011-08-12 8 views
25

私はを持っていますが、私はトランスフォームしていますが、その中にはdivがあります。divです。今私は、内部のdivが、その親の変換によって影響を受けていない、言い換えればわかります。私は内部がdivのように彼の親のようにスケールしないようにしたいと思います。ここで子供が変容を継承するのを防ぐcss3

はhtmlです:ここでは

<div id="rightsection"> 
    <div class="top"></div> 
    <div class="middle"> 
      <div class="large"> 
      <img src="assets/images/rightpanel_expanded.png" alt="map" title="map"/> 
      </div> 
    </div> 
    <div class="bottom"> 
     <p>Check if your friends are going!</p> 
    </div> 
</div> 

は私のCSSです:

#rightsection:hover { 
    -moz-transform:scale(2.16,2.8) translate(-80px,-53px); 
    -webkit-transform:scale(2.16,2.8) translate(-80px,-53px); 
    -o-transform:scale(2.16,2.8) translate(-80px,-53px); 
    -ms-transform:scale(2.16,2.8) translate(-80px,-53px); 
    transform:scale(2.16,2.8) translate(-80px,-53px) 
} 

だから、問題は、私は#rightsectionをスケーリングするとき、あるimgがにスケーリングされますが、私は維持したいと思いますその元のサイズの画像。

何か助けていただければ幸いです。

+2

安定していました。 – BoltClock

+0

[jsFiddle](http://jsfiddle.net)でこれまでのことを再現できますか?あなたの画像はhttp://dummyimage.com/から来ることができます。 – thirtydot

+0

私はそれを再作成しました。ここはjsfiddle.net/ecbVHです。あなたが見ることができるように、画像は578x329でなければなりませんが、それは大きなものです。結果を見るために要素の上にマウスを置くだけです。 – vincent

答えて

1

いつも通り。すべての子に "transform:none"を設定します。ここで

.children1, 
.children2, 
.childrenN { 
    -moz-transform: none; 
    -webkit-transform: none; 
    -o-transform: none; 
    -ms-transform: none; 
    transform: none; 
} 
+0

それは変形の入れ子を防ぐのですか? – BoltClock

+0

はい、そうです。 – Webars

+1

これはどのように機能しますか?私は、これを絶対的または相対的な位置の子供に再現することはできません。ここで私はそれを試した方法です:http://jsfiddle.net/NPC42/XSHmJ/ – NPC

0

それは私のために働いていたものです。..

は私が子供のための逆の移行を使用していました。そして、それはたぶん、あなたが外側のdivのうち、内側のdiv要素を移動する必要があります

.logo { 
    background: url('../images/logo-background.png') no-repeat; 
    width: 126px; 
    height: 127px; 
    margin-top:-24px; 
    z-index: 10; 
    display: block; 

} 
a.logo span{ 
    display: block; 
    width: 126px; 
    height: 127px; 
    background: url('../images/logo-bismi.png') no-repeat; 
    z-index: 20; 
    text-indent: -9999px; 
    text-transform: capitalize; 
    -webkit-transition: -webkit-transform 0.4s ease-out; 
    -moz-transition: -moz-transform 0.4s ease-out; 
    transition: transform 0.4s ease-out;  

} 
a.logo:hover span{ 
    -webkit-transform: rotateZ(-360deg); 
    -moz-transform: rotateZ(-360deg); 
    transform: rotateZ(-360deg); 
} 
a.logo { 
    -webkit-transition: -webkit-transform 0.4s ease-out; 
    -moz-transition: -moz-transform 0.4s ease-out; 
    transition: transform 0.4s ease-out;   
} 
a.logo:hover{ 
    -webkit-transform: rotateZ(360deg); 
    -moz-transform: rotateZ(360deg); 
    transform: rotateZ(360deg); 
} 
2

.parent { 
 
    position: relative; 
 
    background-color: yellow; 
 
    width: 200px; 
 
    height: 150px; 
 
    margin: 70px; 
 
    -webkit-transform: rotate(30deg); 
 
    -moz-transform: rotate(30deg); 
 
    -o-transform: rotate(30deg); 
 
    -ms-transform: rotate(30deg); 
 
    transform: rotate(30deg); 
 
} 
 

 
.child { 
 
    position: absolute; 
 
    top: 30px; 
 
    left: 50px; 
 
    background-color: green; 
 
    width: 70px; 
 
    height: 50px; 
 
    -webkit-transform: rotate(-30deg); 
 
    -moz-transform: rotate(-30deg); 
 
    -o-transform: rotate(-30deg); 
 
    -ms-transform: rotate(-30deg); 
 
    transform: rotate(-30deg); 
 
}
<div class="parent"> 
 
    <div class="child"></div> 
 
</div>

+8

これは継承を防止していないので、それは二重否定で元に戻すだけです。 – JackHasaKeyboard

関連する問題