1
resposta

Não estou entendendo os cálculos

Gostaria de saber de onde surgiu este número 0.707 abaixo: Eixo X: 0.707 x (altura - largura) + largura Eixo Y: -0.707 x altura e porquê estão o usando o cálculo de x e y , como no resultado do exercício: transform: translate(calc(.707 x (3.5em - 100%) + 100%), calc(-.707 x 3.5em)) rotate(45deg);

O código do meu css está assim:

.banner-twitter {
    width: 14em;
    line-height: 1;
    padding: 1em 0;
    box-sizing: border-box;

    text-align: center;
    text-decoration: none;
    background-color: #3C1D3D;
    color: white;
    border: .25em solid black;

    font-size: 1.2em;
    font-family: "Open Sans Condensed", sans-serif;

    position: absolute;
    top: 0;
    right: 0;
    transform-origin: 0 0;
    transform: translate(6.5754em, -2.4749em) rotate(45deg);
}

do trecho do html:

<header class="titulo-principal">
        <img class="foto-home" src="imagens/eu.jpg" alt="Foto de João da Silva">
        <h1>João da Silva</h1>
        <p class="subtitulo-principal">Desenvolvedor web</p>
        <ul class="palavras-home">
            <li class="palavra-home eficiencia">Eficiência</li>
            <li class="palavra-home boas-praticas">Boas práticas</li>
            <li class="palavra-home codigo-limpo">Código limpo</li>
            <li class="palavra-home css3">CSS3</li>
            <li class="palavra-home html5">HTML5</li>
            <li class="palavra-home javascript">JavaScript</li>
            <li class="palavra-home acessibilidade">Acessibilidade</li>
            <li class="palavra-home responsivo">Responsivo</li>
            <li class="palavra-home otimizacoes">Otimizações</li>
            <li class="palavra-home agilidade">Agilidade</li>
            <li class="palavra-home design">Design</li>
        </ul>
        <a class="banner-twitter" href="http://twitter.com/joaodasilva">Siga-me no Twitter</a>
   </header>
1 resposta

Resposta rápida: O número 0.707 é raiz de 2 dividido por 2, que é igual a cos(45) e sen(45).

Resposta mais elaborada:

Se apenas usar o rotate, vai perceber que precisa esconder a ponta superior esquerda que tangencia o topo da tela logo em Y a fórmula altura * cos(45) é a projeção da altura do elemento (que está inclinado) no eixo vertical.

No caso do movimento em X para tangenciarmos na lateral da tela precisamos andar em X o valor da largura menos a projeção da largura no eixo horizontal:

largura - (largura*cos(45))

Sendo assim depois de tangenciar precisamos andar a projeção da altura no eixo horizontal:

altura*cos(45)

Juntando tudo:

X: largura - (largura*cos(45)) + (altura*cos(45)) que pode ser escrito da seguinte forma:

X: 0.707 * (altura - largura) + largura