aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/css/transform-function/scale()/index.html
blob: c249bd69315fc084c29c2892e0e227c054d6504c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
---
title: scale()
slug: Web/CSS/transform-function/scale()
tags:
  - Função CSS
  - Referencia
  - Transformações CSS
translation_of: Web/CSS/transform-function/scale()
---
<div>{{CSSRef}}</div>

<p>A função <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>scale()</code></strong> define uma transformação que redimensiona um elemento no plano 2D. Como o redimensionamento é definido por um vetor, ele pode transformar as dimensões verticais e horizontais em escalas diferentes. Seu resultado é um dado do tipo {{cssxref("&lt;transform-function&gt;")}}.</p>

<p><img src="https://mdn.mozillademos.org/files/12115/scale.png" style="height: 325px; width: 392px;"></p>

<p>Essa transformação de redimensionamento é caracterizada por um vetor bidimensional. Suas coordenadas definem o quanto cada direção deve ser redimensionada. Se as duas coordenadas forem iguais, o redimensionamento é uniforme (<em>isotrópico</em>) e a proporção do elemento é preservada (isto é uma <a href="https://en.wikipedia.org/wiki/Homothetic_transformation">transformação homotética</a>).</p>

<p>Quando o valor de uma coordenada está fora do alcance [-1, 1], o elemento cresce ao longo daquela dimensão; quando está dentro, ele encolhe. Se for negativo, o resultado é um<a href="https://en.wikipedia.org/wiki/Point_reflection"> ponto de reflexão</a> naquela dimensão. O valor 1 não tem efeito.</p>

<div class="note"><strong>Nota:</strong> A função <code>scale()</code> apenas redimensiona em 2D Para redimensionar em 3D, use <code><a href="/en-US/docs/Web/CSS/transform-function/scale3d">scale3d()</a></code> ao invés.</div>

<h2 id="Sintaxe">Sintaxe</h2>

<p>A função <code>scale()</code> é especificada com um ou dois valores, que representam a quantidade de redimensionamento a ser aplicada em cada direção.</p>

<pre class="syntaxbox">scale(<em>sx</em>)

scale(<em>sx</em>, <em>sy</em>)
</pre>

<h3 id="Valores">Valores</h3>

<dl>
 <dt><code>sx</code></dt>
 <dd>Um {{cssxref("&lt;number&gt;")}} representando a abscissa do vetor de redimensionamento.</dd>
 <dt><code>sy</code></dt>
 <dd>Um {{cssxref("&lt;number&gt;")}} representando a ordenada do vetor de redimensionamento. Se não for definida, seu valor padrão é<code>sx</code>, resultando em um redimensionamento uniforme que preserva a proporção do elemento.</dd>
</dl>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Coordenadas cartesianas em ℝ<sup>2</sup></th>
   <th scope="col">Coordenadas homogêneas em ℝℙ<sup>2</sup></th>
   <th scope="col">Coordenadas cartesianas em ℝ<sup>3</sup></th>
   <th scope="col">Coordenadas homogêneas em ℝℙ<sup>3</sup></th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td colspan="1" rowspan="2"><math> <mfenced> <mtable> <mtr><mtd>sx</mtd><mtd>0</mtd></mtr> <mtr><mtd>0</mtd><mtd>sy</mtd></mtr> </mtable> </mfenced> </math></td>
   <td><math> <mfenced><mtable><mtr>sx<mtd>0</mtd><mtd>0</mtd></mtr><mtr>0<mtd>sy</mtd><mtd>0</mtd></mtr><mtr><mtd>0</mtd><mtd>0</mtd><mtd>1</mtd></mtr></mtable> </mfenced> </math></td>
   <td colspan="1" rowspan="2"><math> <mfenced><mtable><mtr>sx<mtd>0</mtd><mtd>0</mtd></mtr><mtr>0<mtd>sy</mtd><mtd>0</mtd></mtr><mtr><mtd>0</mtd><mtd>0</mtd><mtd>1</mtd></mtr></mtable> </mfenced> </math></td>
   <td colspan="1" rowspan="2"><math> <mfenced><mtable><mtr>sx<mtd>0</mtd><mtd>0</mtd><mtd>0</mtd></mtr><mtr><mtd>0</mtd><mtd>sy</mtd><mtd>0</mtd><mtd>0</mtd></mtr><mtr><mtd>0</mtd><mtd>0</mtd><mtd>1</mtd><mtd>0</mtd></mtr><mtr><mtd>0</mtd><mtd>0</mtd><mtd>0</mtd><mtd>1</mtd></mtr></mtable> </mfenced> </math></td>
  </tr>
  <tr>
   <td><code>[sx 0 0 sy 0 0]</code></td>
  </tr>
 </tbody>
</table>

<h2 id="Exemplos">Exemplos</h2>

<h3 id="Redimensionando_as_dimensões_X_e_Y_juntas">Redimensionando as dimensões X e Y juntas</h3>

<h4 id="HTML">HTML</h4>

<pre class="brush: html">&lt;div&gt;Normal&lt;/div&gt;
&lt;div class="scaled"&gt;Redimensionado&lt;/div&gt;</pre>

<h4 id="CSS">CSS</h4>

<pre class="brush: css">div {
  width: 80px;
  height: 80px;
  background-color: skyblue;
}

.scaled {
  transform: scale(0.7); /* Equal to scaleX(0.7) scaleY(0.7) */
  background-color: pink;
}
</pre>

<h4 id="Resultado">Resultado</h4>

<p>{{EmbedLiveSample("Scaling_the_X_and_Y_dimensions_together", "200", "200")}}</p>

<h3 id="Redimensionando_dimensões_X_e_Y_separadamente_e_transladando_a_origem">Redimensionando dimensões X e Y separadamente e transladando a origem</h3>

<h4 id="HTML_2">HTML</h4>

<pre class="brush: html">&lt;div&gt;Normal&lt;/div&gt;
&lt;div class="scaled"&gt;Redimensionado&lt;/div&gt;</pre>

<h4 id="CSS_2">CSS</h4>

<pre class="brush: css">div {
  width: 80px;
  height: 80px;
  background-color: skyblue;
}

.scaled {
  transform: scale(2, 0.5); /* Igual a scaleX(2) scaleY(0.5) */
  transform-origin: left;
  background-color: pink;
}
</pre>

<h4 id="Resultado_2">Resultado</h4>

<p>{{EmbedLiveSample("Scaling_X_and_Y_dimensions_separately_and_translating_the_origin", "200", "200")}}</p>

<h2 id="Browser_compatibility">Compatibilidade com navegadores</h2>

<p>Veja o dado do tipo <code><a href="/en-US/docs/Web/CSS/transform-function#Browser_compatibility">&lt;transform-function&gt;</a></code> para informações de compatibilidade.</p>

<h2 id="Ver_também">Ver também</h2>

<ul>
 <li>{{cssxref("transform")}}</li>
 <li>{{cssxref("&lt;transform-function&gt;")}}</li>
 <li><code><a href="/en-US/docs/Web/CSS/transform-function/scale3d">scale3d()</a></code></li>
</ul>