Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. CSS
  3. Guides
  4. Transforms
  5. Usando CSS transforms

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

Usando CSS transforms

Mudando coordenadas no espaço da tela oCSS transforms permite que a posição do conteúdo afetado seja alterada sem afetar o fluxo de informação da página. Elas são implementadas usando um conjunto de propriedades CSS que permitem alterações lineares em elementos HTML. Essas alterações incluem rotação, inclinações, alteração da escala e tradução tanto em 2D quanto em 3D.

Propriedades de CSS transforms

Duas propriedades principais são usadas para definir o CSS transforms:transform andtransform-origin

transform-origin

Define a posição de origem do elemento. Por padrão esta posição é o canto superior esquerdo do elemento e pode ser movido. É utilizado para muitas alterações, como rotação, alteração de escala e inclinação, que precisam de um ponto especifico como parâmetro.

transform

Define qual alteração será feita no elemento. Pode-se usar mais de um efeito separado-os por um espaço. Tais efeitos serão aplicados um após o outro, na ordem determinada no código.

Exemplo: Rotação

Este exemplo cria um iframe que permite que a página inicial do Google seja utilizada com uma rotação de 90 graus a partir do canto inferior esquerdo

Veja um exemplo funcionandoVeja uma foto do exemplo

html
<div>  <iframe src="http://www.google.com/" width="500" height="600"></iframe></div>

Example: Inclinando e Movendo

Este exemplo cria um iframe que permite que você use a página inicial do Google inclinada em 10 graus no eixo X.

Veja um exemplo funcionandoView uma foto do exemplo

html
<div >  <iframe src="http://www.google.com/" width="600" height="500"></iframe></div>

Propriedades especificas 3D do CSS

Trabalhar com propriedades CSS em 3D é um pouco mais difícil. Você tem que começar configurando o espaço 3D dando perspectiva a ele, então você tem que configurar como os elementos 2D irão se comportar no espaço.

Configurando uma perspectiva

O primeiro elemento a ser configurado é a perspectiva. É ela a responsável pela sensação de 3D. Quanto mais longe o objeto estiver do usuário, menor ele é.

Quanto será a sensação de encolhimento é definida pela propriedadeperspective. Quanto menor o valor, mais profundidade terá o objeto.

HTML

O HTML abaixo cria quatro cópias da mesma caixa, com a perspectiva definida em valores diferentes.

html
<table>  <tbody>    <tr>      <th><code>perspective: 250px;</code></th>      <th><code>perspective: 350px;</code></th>    </tr>    <tr>      <td>        <div>          <div>            <div>1</div>            <div>2</div>            <div>3</div>            <div>4</div>            <div>5</div>            <div>6</div>          </div>        </div>      </td>      <td>        <div>          <div>            <div>1</div>            <div>2</div>            <div>3</div>            <div>4</div>            <div>5</div>            <div>6</div>          </div>        </div>      </td>    </tr>    <tr>      <th><code>perspective: 500px;</code></th>      <th><code>perspective: 650px;</code></th>    </tr>    <tr>      <td>        <div>          <div>            <div>1</div>            <div>2</div>            <div>3</div>            <div>4</div>            <div>5</div>            <div>6</div>          </div>        </div>      </td>      <td>        <div>          <div>            <div>1</div>            <div>2</div>            <div>3</div>            <div>4</div>            <div>5</div>            <div>6</div>          </div>        </div>      </td>    </tr>  </tbody></table>
CSS

O CSS estabelece classes que podem ser usadas para definir a perspectiva a diferentes distâncias. Ele também inclui classes para a caixa do recipiente e o próprio cubo, bem como cada uma de suas faces.

css
/* Shorthand classes for different perspective values */.pers250 {  perspective: 250px;}.pers350 {  perspective: 350px;}.pers500 {  perspective: 500px;}.pers650 {  perspective: 650px;}/* Define the container div, the cube div, and a generic face */.container {  width: 200px;  height: 200px;  margin: 75px 0 0 75px;  border: none;}.cube {  width: 100%;  height: 100%;  backface-visibility: visible;  perspective-origin: 150% 150%;  transform-style: preserve-3d;}.face {  display: block;  position: absolute;  width: 100px;  height: 100px;  border: none;  line-height: 100px;  font-family: sans-serif;  font-size: 60px;  color: white;  text-align: center;}/* Define each face based on direction */.front {  background: rgba(0, 0, 0, 0.3);  transform: translateZ(50px);}.back {  background: rgba(0, 255, 0, 1);  color: black;  transform: rotateY(180deg) translateZ(50px);}.right {  background: rgba(196, 0, 0, 0.7);  transform: rotateY(90deg) translateZ(50px);}.left {  background: rgba(0, 0, 196, 0.7);  transform: rotateY(-90deg) translateZ(50px);}.top {  background: rgba(196, 196, 0, 0.7);  transform: rotateX(90deg) translateZ(50px);}.bottom {  background: rgba(196, 0, 196, 0.7);  transform: rotateX(-90deg) translateZ(50px);}/* Make the table a little nicer */th,p,td {  background-color: #eeeeee;  padding: 10px;  font-family: sans-serif;  text-align: left;}
Resultado

O segundo elemento a ser configurado é a posição do espectador, com a propriedadeperspective-origin. Por padrão, a perspectiva está centrada no telespectador, o que nem sempre é adequado.

Mudando a origem da perspectiva

Este exemplo mostra cubos com valores populares doperspective-origin.

HTML
html
<section>  <figure>    <figcaption><code>perspective-origin: top left;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: top;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: top right;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: left;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: 50% 50%;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: right;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: bottom left;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: bottom;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: bottom right;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: -200% -200%;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: 200% 200%;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure>  <figure>    <figcaption><code>perspective-origin: 200% -200%;</code></figcaption>    <div>      <div>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <div>5</div>        <div>6</div>      </div>    </div>  </figure></section>
CSS
css
/* perspective-origin values (unique per example) */.potl {  perspective-origin: top left;}.potm {  perspective-origin: top;}.potr {  perspective-origin: top right;}.poml {  perspective-origin: left;}.pomm {  perspective-origin: 50% 50%;}.pomr {  perspective-origin: right;}.pobl {  perspective-origin: bottom left;}.pobm {  perspective-origin: bottom;}.pobr {  perspective-origin: bottom right;}.po200200neg {  perspective-origin: -200% -200%;}.po200200pos {  perspective-origin: 200% 200%;}.po200200 {  perspective-origin: 200% -200%;}/* Define the container div, the cube div, and a generic face */.container {  width: 100px;  height: 100px;  margin: 24px;  border: none;}.cube {  width: 100%;  height: 100%;  backface-visibility: visible;  perspective: 300px;  transform-style: preserve-3d;}.face {  display: block;  position: absolute;  width: 100px;  height: 100px;  border: none;  line-height: 100px;  font-family: sans-serif;  font-size: 60px;  color: white;  text-align: center;}/* Define each face based on direction */.front {  background: rgba(0, 0, 0, 0.3);  transform: translateZ(50px);}.back {  background: rgba(0, 255, 0, 1);  color: black;  transform: rotateY(180deg) translateZ(50px);}.right {  background: rgba(196, 0, 0, 0.7);  transform: rotateY(90deg) translateZ(50px);}.left {  background: rgba(0, 0, 196, 0.7);  transform: rotateY(-90deg) translateZ(50px);}.top {  background: rgba(196, 196, 0, 0.7);  transform: rotateX(90deg) translateZ(50px);}.bottom {  background: rgba(196, 0, 196, 0.7);  transform: rotateX(-90deg) translateZ(50px);}/* Make the layout a little nicer */section {  background-color: #eee;  padding: 10px;  font-family: sans-serif;  text-align: left;  display: grid;  grid-template-columns: repeat(3, 1fr);}
Resultado

Feito isso, você pode trabalhar com elementos 3D.

Elementos 2D em espaço 3D

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp