Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Palavras espalhadas pela tela.

Após utilizar posicionar a lista em absoluto dentro do header, as palavras saíram do cabeçalho quando o 3d foi adicionado, espalhando-se pela tela ao contrário do que era esperado no exercício (que as palavras ficassem dentro da tela). Segue o código:

    <header class="titulo-principal">
        <img class="foto-home" src="img/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-chave">
            <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>

E o CSS:

.palavras-chave {
    perspective: 6px;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.palavra-home {
    font-size: 16px;
    font-family: "Shadows Into Light";
    font-weight: bold;
    color: #D5447E;
    position: absolute;
    transform: translate(-50%, -50%);
}

.eficiencia {

    top: 25%;
    right: 35%;
    transform: rotate(30deg) translateZ(2px);
}
.boas-praticas {

    top: 35%;
    left: 12%;
    transform: rotate(120deg) translateZ(5px);
}
.codigo-limpo {

    bottom: 15%;
    left: 25%;
    transform: rotate(15deg) translateZ(2px);
}
.css3 {

    bottom: 26%;
    right: 13.5%;
    transform: rotate(240deg) translateZ(1px);
}
.html5 {

    top: 35%;
    right: 16%;
    transform: rotate(300deg) translateZ(3px);
}
.javascript {

    top: 75%;
    left: 20%;
    transform: rotate(75deg) translateZ(2px);
}
.acessibilidade {

    bottom: 18%;
    left: 30%;
    transform: rotate(200deg) translateZ(4px);
}
.responsivo {

    top: 18%;
    right: 35%;
    transform: rotate(150deg) translateZ(6px);
}
.otimizacoes {

    bottom: 20%;
    right: 25%;
    transform: rotate(115deg) translateZ(5px);
}
.agilidade {

    bottom: 10%;
    left: 25%;
    transform: rotate(280deg) translateZ(2px);

}
.design {

    top: 25%;
    left: 30%;
    transform: rotate(235deg) translateZ(5px);
}
4 respostas

Opa Natan, tudo bom?

Cara, teria como vc compartilhar o html e o css completos que você fez ai, para podermos dar uma olhada na pagina inteira além desses trechos que você já disponibilizou?

Olá William! Segue o código completo. Index.html:

<!DOCTYPE html>
<html lang="pt">
<head>
    <meta charset="UTF-8">
    <title>João da Silva - Desenvolvedor Web</title>
    <link rel="shortcut icon" href="img/favicon.png">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/site.css">
    <link rel="stylesheet" href="css/index.css">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Crimson+Text:400,400italic,600">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Shadows+Into+Light">
</head>
<body>
    <header class="titulo-principal">
        <img class="foto-home" src="img/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-chave">
            <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>


    <main>
        <section class="secao-inicio saudacao">
            <p class="saudacao"><span class="saudacao-inicio">Olá,</span> meu nome é <strong>João da Silva</strong> <span class="saudacao-ultima-linha">e eu construo <em>sites <span class="maravilhosos">maravilhosos</span></em></span></p>
            <a class="botao-index" href="bio.html">Conheça mais um pouco sobre mim</a>
        </section>
        <section class="secao-inicio trabalhos">
            <h2>Trabalhos</h2>
            <ul>
                <li><img src="img/bmw.png" alt="Site da BMW"></li>
                <li><img src="img/ibm.png" alt="Site da IBM"></li>
                <li><img src="img/uol.png" alt="Site da UOL"></li>
            </ul>
            <a class="botao-index" href="portfolio.html">Veja mais</a>
        </section>
        <section class="secao-inicio blog">
            <h2>Blog</h2>
            <small>Últimos posts</small>
            <ol>
                <li class="mais-recente">
                    <a href="blog.html">O essencial de design responsivo</a>
                    <p class="inicio-post">
                        Design responsivo tem ganho cada vez mais atenção como técnica de desenvolvimento de páginas web para dispositivos móveis. Mas como começar?
                    </p>
                </li>
                <li>
                    <a href="blog.html">Por que fazer páginas acessíveis?</a>
                </li>
                <li>
                    <a href="blog.html">JavaScript não obstrusivo</a>
                </li>
            </ol>
            <a class="botao-index" href="blog.html">Veja mais</a>
        </section>
    </main>
    <footer>
        <h2>Vamos conversar?</h2>
        <p>Você pode entrar em contato comigo <a href="contato.html">por e-mail</a> ou pelo telefone <a href="tel:+551234567890">(12) 3456-7890</a></p>
    </footer>
</body>
</html>

index.css:

.foto-home {
    height: 200px;
    border-radius: 50%;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
}
.titulo-principal {
    position: relative;
}
.subtitulo-principal {
    text-align: center;
    font-size: 16px;
}

.palavra-home {
    font-size: 400%;
    font-family: "Shadows Into Light";
    font-weight: bold;
    color: #D5447E;
    position: absolute;

}

.eficiencia {

    top: 25%;
    right: 35%;
    transform: translate(-50%, -50%) rotate(30deg) translateZ(2px) scale(0.25);
}
.boas-praticas {

    top: 35%;
    left: 12%;
    transform: translate(-50%, -50%) rotate(120deg) translateZ(5px) scale(0.25);
}
.codigo-limpo {

    bottom: 15%;
    left: 25%;
    transform: translate(-50%, -50%) rotate(15deg) translateZ(2px) scale(0.25);
}
.css3 {

    bottom: 26%;
    right: 13.5%;
    transform: translate(-50%, -50%) rotate(240deg) translateZ(1px) scale(0.25);
}
.html5 {

    top: 35%;
    right: 16%;
    transform: translate(-50%, -50%) rotate(300deg) translateZ(3px) scale(0.25);
}
.javascript {

    top: 75%;
    left: 20%;
    transform: translate(-50%, -50%) rotate(75deg) translateZ(2px) scale(0.25);
}
.acessibilidade {

    bottom: 18%;
    left: 30%;
    transform: translate(-50%, -50%) rotate(200deg) translateZ(4px) scale(0.25);
}
.responsivo {

    top: 18%;
    right: 35%;
    transform: translate(-50%, -50%) rotate(150deg) translateZ(6px) scale(0.25);
}
.otimizacoes {

    bottom: 20%;
    right: 25%;
    transform: translate(-50%, -50%) rotate(115deg) translateZ(5px) scale(0.25);
}
.agilidade {

    bottom: 10%;
    left: 25%;
    transform: translate(-50%, -50%) rotate(280deg) translateZ(2px) scale(0.25);

}
.design {

    top: 25%;
    left: 30%;
    transform: translate(-50%, -50%) rotate(235deg) translateZ(5px) scale(0.25);
}
.saudacao p {
    color: #99A;
    line-height: 1;
    font-size: 1.5em;
    padding: 2em;
}
.saudacao-inicio {
    color: #889;
    font-size: 3em;
}
.saudacao-ultima-linha {
    text-align: right;
    display: block;
}
.saudacao strong {
    color: #000;
    font-size: 2em;
}
.saudacao em {
    color: #851944;
    font-size: 4em;
}
.maravilhosos {
    transform: skew(-10deg) rotate(-15deg);
    display: inline-block;
}
.botao-index {
    font-size: 1.25em;
    background-color: #851944;
    color: #FFF;
    border: .2em solid black;
    width: 40ch;
    text-align: center;
    padding: .5em;
    margin: 2em auto;
    display: block;
}
.secao-inicio {
    padding: 2em;
}

.secao-inicio h2 {
    text-transform: uppercase;
    font-size: 3em;
    text-shadow: 2px 2px #000;
    margin-bottom: .5em;
}
.trabalhos {
    background-color: #3C1D3D;
    border-top: 10px solid #000;
    border-bottom: 10px solid #000;
}
.trabalhos h2 {
    color: #FFF;
    border-top: 5em;
    border-bottom: 5em;
}
.trabalhos ul {
    overflow: hidden;
    border: 5em solid black;
}
.trabalhos li {
    float: left;
    width: 33.333%;
}
.trabalhos img {
    width: 100%;
    display: block;
}
.blog {
    background-color: #999;
    color: #FFF;
    border-bottom: 5em solid #851944;
    position: relative;
}
.blog li a {
    color: #FCF;
}
.blog small {
    position: relative;
    top: -2em
}
footer {
    background-color: #000;
    color: #FFF;
    padding: 2em;
}
footer h2 {
    font-size: 3em;
}
footer a {
    color: #F99;
}
main {
    width: 100%;
    padding-bottom: 0;
    float: none;
}
.blog .inicio-post {
    position: absolute;
    top: 4em;
    height: 8em;
    left: 30%;
    right: 4em;
    background-color: #F2FFFC;
    color: #000;
    padding: 1.5em;
}

.blog .mais-recente {
    background-color: #F2FFFC;
}

.blog .mais-recente a {
    color: #F26;
}
.blog li {
    width: 30%;
}

.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: 16px;
    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);
}

html, body {
    height: 100%;
    overflow-x: hidden;
}
.palavras-chave {
    perspective: 6px;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

(css genérico de todas as páginas) site.css:

p {

    text-align: justify;
    margin: 1rem 0;
}

body {
    background-color: #F2FFFC;
    font-family: "Crimson Text", "Times New Roman", serif;
    line-height: 1.5;
}

main {
    width: 85%;
    float: left;
    padding-bottom: 80px;
}

.titulo-principal {
    color: #FFF;
    background-color: #851944;
    text-align: center;
    padding: 2rem;
    border-bottom: 0.5rem solid black;
    font-size: 300%;
    text-transform: uppercase;
}

main h2 {
    font-size: 150%;
    clear: both;
}

main a {
    color: #851944;
}

.texto {
    width: 720px;
    margin-left: auto;
    margin-right: auto;
    padding: 1.5rem 0;
}

/*fonte dos títulos*/
h1, h2 {
    font-family: "Open Sans Condensed", "Arial", sans-serif;
}



.navegacao {
    background-color: #3C1D3D;
    color: #F2FFFC;
    font-family: "Open Sans Condensed", "Arial", sans-serif;
    text-align: center;
    text-transform: lowercase;
    width: 15%;
    position: relative;
    top: 310px;
}
/*título da barra de navegação*/
.navegacao h1 {
    margin-bottom: 1.25rem;
    font-size: 150%;
    text-transform: none;
}

.icones-sociais li {
    display: inline-block;
}

.icones-sociais a {
    text-indent: -9999px;
    width: 40px;
    height: 40px;
    display: block;
}

.github {
    background-image: url(../img/github.png);
}

.twitter {
    background-image: url(../img/twitter.png);
}

.linkedin {
    background-image: url(../img/linkedin.png);
}

.rodape-pagina {
    background-color: #000;
    color: #F2FFFC;
    clear: both;
    position: fixed;
    width: 100%;
    bottom: 0px;
    padding: 0.5rem;
}

nav a {
    color: inherit;
}

.navegacao, {
    padding: 1rem;
}

.navegacao, .minha-foto {
    float: right;
    border-bottom: 0.5rem solid black;
    border-left: 0.5rem solid black;
    box-sizing: border-box;
}

strong {
    font-weight: bold;
}

em {
    font-style: italic;
}



.minha-foto {
    position: absolute;
    top:0;
    right: 0;
}
solução!

Natan, é a propriedade de perspective que esta afetando o posicionamento dos itens para fora do header.

Tente comentar essa linha e veja se a palavras voltam para dentro do header.

.palavras-chave {
   /*perspective: 6px;*/
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

Dando uma olhada mais a fundo esse exercício aparentemente necessita ser reformulado.

No próprio fórum varias outras pessoas apresentaram algum bug similar ao seu e algumas dicas de soluções temporárias até que esses exercícios sejam reformulados são para continuar baixando as versões do projeto de cada aula e ir comparando com o seu código para ficar a par das alterações.

Segue o link para os posts no fórum relacionados a esse exercício: https://cursos.alura.com.br/forum/curso-avancando-html-css/exercicio-palavras-em-3d/6139/novo

Retirei a perspectiva e os elementos voltaram para dentro do cabeçalho. Irei seguir essa dica de comparar o que eu já fiz com as versões disponíveis para download. Muito obrigado!!