Zoom Vs. Skala in CSS3
Ich war auf der Suche für einige css-Eigenschaften, die ich nie verwendet und kam zu wissen, über zoom
Eigenschaft von css3
-
Was die ähnlichkeiten und Unterschiede zwischen Ihnen?
-
Wann verwenden Sie Vergrößern und als Maßstab? Beides geht so ziemlich dieselbe Arbeit.
-
Welche effizienter zu nutzen und Warum?
Was habe ich bemerkt?
-
beide Skalen des Objekts, sondern Standard-transformieren-Herkunft zum Maßstab seiner Mitte für zoom oberen linken glaube ich;
-
wenn wir verwenden Sie für die Skalierung auf hover zoom skalieren und wieder schrumpft, original-Dimension, während die Skala wird nur verkleinern auf hover-out.
-->> jsfiddle zeigt hover effectst**
CSS:
*
{
-webkit-transition-duration: 0.3s;
-moz-transition-duration: 0.3s;
-ms-transition-duration: 0.3s;
-o-transition-duration: 0.3s;
transition-duration: 0.3s;
}
box, box2
{
display: inline-block;
width: 100px;
height: 100px;
margin: 20px;
}
box
{
background: #b00;
}
box:hover
{
zoom: 1.1;
}
box2
{
background: #00b;
}
box2:hover
{
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
-ms-transform: scale(1.1);
-o-transform: scale(1.1);
transform: scale(1.1);
}
HTML:
<box></box>
<box2></box2>
Einige Stackoverflow-QA
CSS:
div {
display: inline-block;
height: 50px;
width: 50px;
}
.one {
background: #07a;
-webkit-transform: scale(2);
-moz-transform: scale(2);
-ms-transform: scale(2);
-o-transform: scale(2);
transform: scale(2);
transform-origin: top top;
}
.two {
background: #eee;
zoom: 200%;
margin-left:100px;
}
.three {
background: #07a;
transform-origin: top left;
transition:all 0.6s ease;
}
.three:hover{
-webkit-transform: scale(2);
-moz-transform: scale(2);
-ms-transform: scale(2);
-o-transform: scale(2);
transform: scale(2);
}
.four {
background: #eee;
transition:all 0.6s ease;
}
.four:hover{
zoom: 200%;
}
HTML:
<h4>Already zoomed and scalled</h4>
<div class="one"></div>
<div class="two"></div>
<hr>
<h4>Zoomed and Scalled on hover</h4>
<div class="three"></div>
<div class="four"></div>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwandeln, ist mehr vorhersehbar, als zoom-in allen Browsern.
Zoom betrifft Positionierung unterschiedlich in verschiedenen Browsern.
Beispiel:
position:absolute; left:50px; zoom: 50%;
left
Wert.25px
. Effektiv, es machtleft = left * zoom
. Aber DevTools Berechneten Werte in DevTools immer nochleft: 50px
, obwohl das ist effektiv nicht wahr, aufgrund der zoom.Transformation behandelt die gleiche Weise in allen Browsern (soweit ich das sagen kann).
Beispiel:
position:absolute; left:50px; transform: scale(0.5)
left
würde effektiv gesetzt werden, um25px
im Chrome und IE. (wieder, berechnete Werte werden noch nicht wider, es zeigtleft:50px
)left
Wert, verwenden Sie einfachtransform-origin: 0 0
. Das wird gewährleistet bleibt, ist immer noch 50px.Demo: http://jsfiddle.net/4z728fmk/ zeigt 2 Boxen, wo die kleine ist gezoomt oder skaliert auf 50%. Sieht wie folgt aus:
edit: img-aktualisiert 2016-06-16 mit Firefox (hatte nichts ändern bei Chrome oder IE seit dem letzten mal)
Ergänzen Drkawashima Antwort:
zoom
funktioniert nicht in Firefox überhaupt. Sehen caniusezoom: 1;
war der mächtige Erklärung, die dazu beitrug, debug IE6. Es übertrug das element, an das es aufgetragen wurde eine interne "Schalter" an diese browser namens hasLayout (nicht eine CSS-Eigenschaft, nur ein Konzept wie "clearfix" ist). Finden Sieposition: relative; zoom: 1;
ziemlich viel in alten Projektenzoom
funktioniert nicht mit css-Animationen odertransition
Anstand:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties