2016-09-01 8 views
2

ままにしたい私は、HTMLとCSSを持っている:CSSのdivスケーリングが、HTMLは通常のスケールで

<div class="box" style="transform: scale(2);"> 
    <div class="text">This is my text.</div> 
</div> 

は、どのように私は外箱は、アニメーションを経由していたときに、スケーリングからテキストを保つのですか?

+0

@RoryMcCrossanまたはテキスト要素自体を変換する! – Roberrrt

答えて

3

scaleは、要素全体と内部の子ツリーに作用します。しかし、スケールアップしているように見えるようにすることができます。そのようなこと(この方法は、GPUとブラウザの描画に軽いです):

<div class="box" style="position: relative"> 
    <div class="box-block" style="position: absolute; transform: scale(2);"></div> 
    <div class="text">This is my text.</div> 
</div> 

だから、アイデアがある:

  1. あなたは内側の2つの保持ブロック
  2. を持つコンテナ要素
  3. を持っています
  4. あなたはボックスのように見え、それを拡大縮小します。
  5. テキストdivは別の要素に含まれているため、決してアニメーションに触れません。

構造が改善される可能性があります。 乾杯!

+1

理論では*できます。子要素のスケーリング「0.5」を反転させることによって、 –

+1

私の目の前でProbablly間違った表現。事は - それは男が尋ねたようにそれをするための最良の方法ではありません。それは、内側の子供のスケーリングを逆にして単純なスケーリングのためにあまりにも多くの描画を使用し、bluryを見ます。それがボタンの場合は必要ありません。おそらくホバー上にあります。 – PeterS

2

あなたは(あなたのケースで2で割った1が0.5である)、元の規模で割った1によって、内側のdivをスケーリングする必要があります。

<div class="box" style="transform: scale(2);"> 
 
    <div class="text" style="transform: scale(0.5);">This is my text.</div> 
 
</div>

+0

私はそれをアニメーション化している場合、これは機能しますか?私はjqueryアニメーションを使用してスケール – cdub

+0

を使用していますが、アニメーションが何をしているかによって異なります – Pete

1

transform: scale(x)はと全体要素をスケーリングそれはすべて子どもです。私はあなたのCSSを見ることはできませんが、この場合には、すべてのテキストがスケーリングされていないことを確認するためにハードコード化されたソリューションを実装する必要があり、それは次のようになります。

.box:hover { 
    transform: scale(2); 
} 

.box:hover > .text { 
    transform: scale(0.5); // change it back to half of the intended size by the .box; 
} 
2

私はわからないんだけど、これがあれば何をしたいのですか?

.parent { 
    transform: scale(2); 
} 
.child { 
    transform: scale(0.5); 
} 

子供をスケールします。スケールxの場合、すべての子供に目盛り1/xを使用する必要があります。

+0

jqueryアニメーションでインラインにすると2倍に、0.5xに戻ってゆきます。 – cdub

+0

jQueryスケーリングにはおそらく 'transform'が使用されていますが、このプロパティを持つものはあまり美しく見えません。''で使われている単純な 'transform:translate()'でもイメージがぼやける可能性があるので、テキスト自体に影響すると思います。もちろん、ブラウザやその他の要因(グラフィックカード?)に応じて。 – Seb

2

変換要素のすべてのコンテンツは、不透明度を使用しているとき、あなたはスケーリングコンテナの外にテキストを設定する必要があると同じように、それを用いて形質転換し、オーバーレイ互いを作るためにそれらにいくつかのポジショニングを使用している:

<div class="text">This is my text.</div> 
<div class="box" style="transform: scale(2);"></div> 

代わりに、含まれる要素に反対のスタイルを設定することにより、変換を回避しようとすることができます:あなたができない理論に

<div class="box" style="transform: scale(2);"> 
    <div class="text" style="transform: scale(0.5);">This is my text.</div> 
</div> 
関連する問題