親内の子に適用する適切なスケールを計算しようとしていますが、CSS 関数calc()
内では使用できません。transform: scale
私はこの機能を JavaScript で実行しましたが、スクリプトでページが肥大化するのをできるだけ避けるために、純粋な CSS ソリューションに興味があります。
例: CSS
.anyclass{
height:250px; /*this value can change dinamically */
transform:scale(calc(100% / 490 )); /*is using height value*/
}
この定義は、無効なプロパティ値を返します。翻訳のような他の用途:
.anyclass{
transform:translate(calc(100% - 50px ));
}
問題なく動作します。CSSのみを使用してdivの正しいスケールを計算するためにcalcを使用できる方法はありますか?
編集:それをよりよく説明するために、計算がそれを行うので、0と1の間の値を見つけることは問題ではありません。パーセンテージを使用すると、無効なプロパティ値が取得されます。
テスト 1 CSS3 変数で試してみましたが、Scale 関数で結果が得られませんでした
--height: calc(100% + 0px);
/* height: calc(var(--height) / 490); Calculates the right value: 0.5 */
--soom: calc(var(--height) / 490);
/* height: var(--soom); has the right value: 0.5 */
transform: scale(var(--soom)); /*Does not operate in the value stored in --soom*/
クロムの値を受け入れるようですが、スケールを操作しません。
ZOOM CSS プロパティは、chrome thou でのみ正常に動作するようです。これはうまくいきます。
zoom: calc(100% / 1.490); /* It needs the original value to be divided by 1000 to work properly*/
作業例:
Url: MiWeb では、クラスが class="cs_6c537e46d973809bcbd9abb882d9c7db cssprite" の DIV には、スプライトをソースとして使用するため、background-image プロパティがあります。 CSS
background-position: 0 -840px;
width: 800px;
height: 490px;
background-image: url(https://cdn.arturoemilio.es/wp-content/cache/CSS_Sprite/93db60ac3df9134d96d56dd178d4ebf3279fdb39_S.png);
background-repeat: no-repeat;
display: inline-block;
position: initial;
現在、元の画像は目に見える div よりも大きくなっています。JS(height:250px aprox)
がブロックされているブラウザーとの互換性を高めるために JS の使用を避けたいので、CSS のみを使用して画像をスケーリングしたいと思います。
その背景画像を適切なサイズにスケーリングしたいのですが、正しい値は 250px / 490px ( scale(calc(100% / 490) ) です。CSS は出力前および CMS の他の部分で生成されるため、できません。 CS ルールが生成されるときの親 DIV の実際のサイズがわかります。