A resposta de Micheal é mais precisa. Você pode atualizar a resposta correta? Porque a resposta que você marcou como correta não é um espelho, mas uma rotação de 180 graus.
Sanket Sahu
@PeteWilson,? O caractere é tão comum? Para que é usado?
Pacerier
4
Esteja ciente de que a rotação é diferente dependendo da implementação do emoji. No conjunto de emoji de maçãs, está apontando para baixo.
Akkumulator
Respostas:
411
Você pode usar transformações CSS para conseguir isso. Um flip horizontal envolveria o dimensionamento da div assim:
Esta deve ser a resposta correta! (espelhos ao longo do eixo vertical, escala (1, -1) para o eixo horizontal)
Projeto por Adrian
É certamente a resposta compatível com os padrões nost, infelizmente ainda não vivemos em um mundo em que isso realmente funcione para todos os casos de uso.
precisa
Você poderia incluir os prefixos reais do navegador em sua resposta, com o último não prefixado? O CSS que você forneceu não funciona.
Serrano
@SerranoPereira de fato, obrigado pela sugestão. Resposta alterada.
Os dois parâmetros são o eixo X e o eixo Y -1 será um espelho, mas você pode dimensionar para qualquer tamanho que desejar para atender às suas necessidades. De cabeça para baixo e para trás seria (-1, -1).
Se você está interessado na melhor opção disponível para suporte a vários navegadores em 2011, veja minha resposta mais antiga .
Tecnicamente, isso não é um espelho. está rodado. Por isso vai funcionar apenas com algum tipo de elementos
borisrorsvort
4
Eu tive alguns problemas no Chrome até que eu adicionei display: inline-block ao meu período (usando fontes pictos)
Clarence Liu
1
Dado que, quando essa pergunta foi feita, as transformações do navegador não eram amplamente suportadas, eu argumentaria que essa foi a resposta certa. De fato, as transformações não são suportadas até o IE 9, então eu diria que essa ainda é a resposta certa, por pelo menos um pouco mais.
21813 Chris Sobolewski
Esta resposta está errada, não é um espelho. Só funciona neste caso, porque o símbolo dado no exemplo é verticalmente assimétrico.
22814 gregtczap
Embora isso seja útil por si só, não é a resposta para a pergunta exata feita. Encontrei essa pergunta através de um mecanismo de pesquisa porque queria inverter uma imagem horizontalmente. Não é simétrico como a tesoura do OP.
Você deve sempre colocar a propriedade compatível com os padrões (não prefixada) por último, para que, quando o padrão for adotado por um navegador, ele use a versão baseada em padrões em vez da versão prefixada (mais antiga, com bugs). Nesse caso, isso significa "transformar: matriz (-1, 0, 0, 1, 0, 0);" deve ser a última propriedade. (Editado a resposta para refletir isso.)
Jay Dansand
7
Eu não sei se este deve ser na resposta correta ou a pergunta, mas eu quero deixar fontawesome / usuários de bootstrap saber sobre os fa-flip-horizontale fa-flip-verticalpropriedades
lol
1
Ótima resposta real. No entanto exibir: bloco; não necessariamente necessário.
Gilly
6
sim ... display: bloco; ou bloco inline é necessário
dGo 4/15
Isso foi realmente útil para manter a orientação correta do texto da face posterior de um elemento quando girada ao longo do eixo Y. Por exemplo:backface-visibility: visible; transform-origin: center center; transform-style: preserve-3d; transform: matrix(-1, 0, 0, 1, 0, 0) rotateY(180deg) ;
Essa solução parece funcionar em todos os navegadores, incluindo o IE6 +, usando scale(-1,1)(um espelho adequado) e as propriedades filter/ apropriadas -ms-filterquando necessário (IE6-8):
/* Cross-browser mirroring of content. Note that CSS pre-processors
like Less cough on the media hack.
Microsoft recommends using BasicImage as a more efficent/faster form of
mirroring, instead of FlipH or some kind of Matrix scaling/transform.
@see http://msdn.microsoft.com/en-us/library/ms532972%28v=vs.85%29.aspx
@see http://msdn.microsoft.com/en-us/library/ms532992%28v=vs.85%29.aspx
*//* IE8 only via hack: necessary because IE9+ will also interpret -ms-filter,
and mirroring something that's already mirrored results in no net change! */@media \0screen {.mirror {-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(mirror=1)";}}.mirror {/* IE6 and 7 via hack */*filter:progid:DXImageTransform.Microsoft.BasicImage(mirror=1);/* Standards browsers, including IE9+ */-moz-transform: scale(-1,1);-ms-transform: scale(-1,1);-o-transform: scale(-1,1);/* Op 11.5 only */-webkit-transform: scale(-1,1);transform: scale(-1,1);}
O que talvez seja ainda mais claro e compreensível.
EDIT: Parece que não funciona no Opera ... infelizmente. Mas funciona bem no Firefox. Eu acho que pode ser necessário dizer implicitamente que estamos fazendo algum tipo de translate3dtalvez? Ou algo assim.
Para quem está se perguntando isso é uma transformação 3D. Eu acho que é definitivamente mais legível / compreensível do que os métodos de escala e matriz dados anteriormente.
22714 Gregtczap
Não vejo como uma rotação é um espelho - isso parece apenas acontecer em um caso especial.
cel sharp
O @celsharp está no eixo Y, para que você veja a imagem / elemento de trás, espelhado.
jeromej 16/04
1
Basta adicionar uma demonstração de trabalho para o espelho horizontal e vertical.
box-reflect é uma propriedade apenas do webkit. Mas eu não acho que tem um equivalente -moz- .. Confira este post ..
mithunsatheesh
Também separador deve ser :não;
mithunsatheesh
0
Apenas mais um exemplo de como o personagem pode ser invertido. Adicione prefixos de fornecedores se precisar, mas por enquanto todos os navegadores modernos suportam propriedades de transformação sem prefixo. A única exceção é o Opera se o modo Opera Mini estiver ativado (~ 3% dos usuários do mundo).
Respostas:
Você pode usar transformações CSS para conseguir isso. Um flip horizontal envolveria o dimensionamento da div assim:
E um flip vertical envolveria o dimensionamento da div assim:
DEMO:
fonte
Os dois parâmetros são o eixo X e o eixo Y -1 será um espelho, mas você pode dimensionar para qualquer tamanho que desejar para atender às suas necessidades. De cabeça para baixo e para trás seria
(-1, -1)
.Se você está interessado na melhor opção disponível para suporte a vários navegadores em 2011, veja minha resposta mais antiga .
fonte
Espelho real:
fonte
fa-flip-horizontal
efa-flip-vertical
propriedadesbackface-visibility: visible; transform-origin: center center; transform-style: preserve-3d; transform: matrix(-1, 0, 0, 1, 0, 0) rotateY(180deg) ;
Você pode usar qualquer um
ou
Observe que definir
position
comoabsolute
é muito importante! Se você não definir, precisará definirdisplay: inline-block;
fonte
Eu juntei esta solução vasculhando a Internet, incluindo
Essa solução parece funcionar em todos os navegadores, incluindo o IE6 +, usando
scale(-1,1)
(um espelho adequado) e as propriedadesfilter
/ apropriadas-ms-filter
quando necessário (IE6-8):fonte
Para compatibilidade entre navegadores, crie esta classe
E adicione-o à sua classe de ícones, ou seja,
para obter um ícone de pesquisa com a alça à esquerda
fonte
você pode usar 'transformar' para conseguir isso. http://jsfiddle.net/aRcQ8/
css:
fonte
Há também o
rotateY
para um espelho real:O que talvez seja ainda mais claro e compreensível.
EDIT: Parece que não funciona no Opera ... infelizmente. Mas funciona bem no Firefox. Eu acho que pode ser necessário dizer implicitamente que estamos fazendo algum tipo de
translate3d
talvez? Ou algo assim.fonte
Basta adicionar uma demonstração de trabalho para o espelho horizontal e vertical.
fonte
isto é o que funcionou para mim
<span class="navigation-pipe">></span>
só precisa de exibição: bloco embutido ou bloco para girar. Então, basicamente, a primeira resposta é boa. Mas -180 não funcionou.
fonte
Você pode tentar refletir a caixa
veja a propriedade CSS refletir compatibilidade com caixas? para mais detalhes
fonte
:
não;
Apenas mais um exemplo de como o personagem pode ser invertido. Adicione prefixos de fornecedores se precisar, mas por enquanto todos os navegadores modernos suportam propriedades de transformação sem prefixo. A única exceção é o Opera se o modo Opera Mini estiver ativado (~ 3% dos usuários do mundo).
fonte
direction: rtl;
é provavelmente o que você está procurando.fonte
Isso funciona bem com ícones de fontes como 's7 stroke icons' e 'font-awesome' :
E então no elemento de destino:
fonte