Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Outra solução?

Pessoal, não vi a resolução do professor até terminar o meu site. Porém, me deparei com outra maneira de faz, a qual demonstrarei abaixo:

HTML a partir do <main>

<main>
            <h1>Portfolio</h1>
            <div class="central">
                <article>
                    <p>Veja abaixo a lista dos meus projetos mais relevantes</p>
                        <div id="BMW" class="box">
                            <a href="http://www.bmw.com/com/en/" target="_blank"> 
                                <figure>
                                    <img src="img/bmw.png" alt="BMW">
                                    <figcaption>BMW.com: reformulação de design e implementação de HTML, CSS e JavaScript</figcaption>
                                </figure>
                            </a>
                        </div>
                        <div id="UOL" class="box">
                            <a href="http://www.uol.com.br" target="_blank">
                                <figure>
                                    <img src="img/uol.png" alt="UOL">
                                    <figcaption>UOL.com.br: reformulação de design e implementação de HTML, CSS e JavaScript</figcaption>
                                </figure>
                            </a>
                        </div>
                    <div id="IBM" class="box">
                        <a href="https://www.ibm.com/br-pt/" target="_blank"> 
                            <figure>
                                <img src="img/ibm.png" alt="IBM">
                                <figcaption>IBM.com: aplicação de progressive enhancement em conjunto com aplicação back-end</figcaption>
                            </figure>
                        </a>
                    </div>
                    <div id="G1" class="box">
                        <a href="http://g1.globo.com" target="_blank">
                            <figure>
                                <img src="img/g1.png" alt="G1">
                                <figcaption>G1.globo.com: reformulação de design e implementação de HTML, CSS e JavaScript</figcaption>
                            </figure>
                        </a>
                    </div>
                </article>               
            </div>            
        </main>

E o arquivo portfolio.css completo

main {
    padding-bottom: 50px;
}
.box {
    width: 350px;
    padding: 16px;
    text-align: center;
    border: 3px solid black;
    box-sizing: border-box;
    background-color: #FAFFFC;
    box-shadow: 3px 3px 7px grey;
    margin-bottom: 12px;
}
.box:hover {
    box-shadow: 2px 2px 5px grey;
}
.box:active {
    box-shadow: 1px 1px 3px grey;
}
img {
    margin-bottom: 3px;
}
#BMW {
    float: left;
}
#UOL {
    float: right;
}
#IBM {
    float: left;
}
#G1 {
    float: right;
}

Essa alternativa é tão válida quanto a anterior? E uma segunda dúvida: Tive que dimensionar o tamanho das 4 caixas com uma largura fixa em pixels para que a imagem não ultrapassasse o box. Tentei aplicar apenas nas tags <img> a função "width: 100%", porém as caixas se moldavam ao tamanho da frase sem quebra de linha. Em resumo minha dúvida seria: qual a opção correta a ser aplicada ao meu modelo de código para que a imagem se adeque ao tamanho da caixinha com quebra de linha no texto e não o contrário?

1 resposta
solução!

Olá Guilherme,

vou destacar alguns pontos da sua solução em relação à solução oferecida pelo instrutor.

  • Você fez uma div para cada link do portfólio. Isso funciona, mas não está dando semântica para a sua página. A alternativa seria fazer uma ul e que cada caixinha seja uma li, de modo que fique claro que os links são uma coisa só - uma lista de produções do João. Lembre-se de modificar o estilo da lista para horizontal.

  • O width: 100% é referente ao container no qual seu bloco está dentro. Uma solução seria limitar e centralizar o tamanho da ul, e então cada li teria width: 48% com alguma margem.

De resto parece estar de acordo.

Abraços, Victor.