Eu tenho usado CSS3 transformar para girar imagens e caixas de texto com bordas no meu site.
O problema é que a borda parece irregular no Chrome, como um jogo (de baixa resolução) sem Anti-Aliasing. No IE, Opera e FF, parece muito melhor porque é usado o AA (que ainda é claramente visível, mas não tão ruim). Não posso testar o Safari porque não possuo um Mac.
A foto girada e o texto em si parecem bem, é apenas a borda que parece irregular.
O CSS que eu uso é o seguinte:
.rotate2deg {
transform: rotate(2deg);
-ms-transform: rotate(2deg); /* IE 9 */
-webkit-transform: rotate(2deg); /* Safari and Chrome */
-o-transform: rotate(2deg); /* Opera */
-moz-transform: rotate(2deg); /* Firefox */
}
Existe alguma maneira de corrigir isso, por exemplo, forçando o Chrome a usar AA?
Exemplo abaixo:
Respostas:
Caso alguém procure mais tarde, um bom truque para se livrar dessas arestas irregulares nas transformações de CSS no Chrome é adicionar a propriedade CSS
-webkit-backface-visibility
com um valor dehidden
. Nos meus próprios testes, isso os suavizou completamente. Espero que ajude.fonte
padding: 1px; -webkit-background-clip: content-box;
padding: 1px;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-background-clip:content-box;background-clip:content-box;
Se você estiver usando em
transition
vez detransform
,-webkit-backface-visibility: hidden;
não funciona. Uma aresta serrilhada aparece durante a animação para um arquivo png transparente.Para resolvê-lo, usei:
outline: 1px solid transparent;
fonte
Adicionar uma borda transparente de 1px acionará o anti-aliasing
Como alternativa, adicione uma sombra de caixa transparente de 1px.
fonte
outline: 1px solid transparent;
funcionou bem para mim. As outras soluções acima não funcionaram bem o suficiente.outline: 1px solid transparent;
gatilho anti-aliasing também em Fogo 52 (que tem os mesmos problemas de cromo)Experimente a transformação 3D. Isso funciona como um encanto!
fonte
preserve-3d
;rotate
ainda pode ser usado sem mudar pararotateZ
) funciona.A resposta escolhida (nem nenhuma das outras respostas) não funcionou para mim, mas isso funcionou:
img {outline:1px solid transparent;}
fonte
Estou tendo um problema com um gradiente CSS3 com -45deg. A
background
inclinação era muito irregular, mas pior do que o post original. Então eu comecei a jogar com os doisbackground-size
. Isso esticaria a irregularidade, mas ainda estava lá. Além disso, li que outras pessoas também estão tendo problemas com incrementos de 45 graus, então ajustei de-45deg
para-45.0001deg
e meu problema foi resolvido.No meu CSS abaixo,
background-size
era inicialmente30px
e odeg
gradiente de fundo era exatamente-45deg
, e todos os quadros-chave eram30px 0
.fonte
Você pode mascarar o entalhe usando sombras de caixa borradas . O uso de -webkit-box-shadow em vez de box-shadow garantirá que não afete os navegadores que não são da Webkit. Você pode querer verificar o Safari e os navegadores móveis da Web.
O resultado é um pouco melhor, mas ainda muito menos bom que os outros navegadores:
fonte
Apenas pensei em lançar nossa solução também, pois tínhamos exatamente o mesmo problema no Chrome / Windows.
Tentamos a solução por @stevenWatkins acima, mas ainda tivemos o "passo".
Ao invés de
Nós costumavamos:
Para nós, isso fez o truque 🎉
fonte
Adicionar o seguinte na div que envolve o elemento em questão corrigiu isso para mim.
As bordas irregulares estavam aparecendo na janela do vídeo no meu caso.
fonte
Para mim, foi a propriedade CSS da perspectiva que fez o truque:
Completamente ilógico no meu caso, como não uso transições 3D, mas funciona mesmo assim.
fonte
Para tela no Chrome (versão 52)
Todas as respostas listadas são sobre imagens. Mas meu problema é sobre a tela no chrome (v.52) com transform rotate. Eles ficaram irregulares e todos esses métodos não podem ajudar.
Solução que funciona para mim:
Blocos de código tão importantes:
Exemplo: https://jsfiddle.net/tLbxgusx/1/
Nota: existem muitas divs aninhadas porque é uma versão simplificada do meu projeto.
Este problema é reproduzido também para o Firefox para mim. Não existe esse problema no Safari e no FF com retina.
E outra solução fundada é colocar a tela em div do mesmo tamanho e aplicar o seguinte css a esta div:
E a rotação deve ser aplicada a esta div de empacotamento. A solução listada é trabalhada, mas com pequenas modificações.
E um exemplo modificado para essa solução é: https://jsfiddle.net/tLbxgusx/2/
Nota: Veja o estilo de div com a classe 'third'.
fonte