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

inline-block não apresenta o comportamento desejado

Olá amigos,

Tentei reproduzir o efeito da propriedade display:inline-block como o exemplo do vídeo, porém o comportamento não é o mesmo. Quando o professor mudou esta propriedade a tag <li> assumiu o mesmo tamanho (largura e altura) das imagens. Quando fiz isto, apenas a largura ficou igual à da imagem, porém a altura ficou maior (52,2px). Eu só consegui o mesmo efeito (tag <li> assumindo o mesmo tamanho da imagem - 40px X 40px) quando explicitamente atribui o heigth=40px pro elemento <li>, desta forma:

aside li {
    display: inline-block;
    height: 40px;
}

Mas gostaria de saber porque no vídeo quando o professor altera só o display da tag <li> ela já "pega" certinho o tamanho da imagem.

Segue abaixo o html da página feito até este momento do curso, junto com o código CSS utilizado (estou usando o firefox 52.0):

<!DOCTYPE HTML5>
<html>
<meta charset="utf-8" />

<head>
    <title>Biografia - João da Silva</title>
    <link rel="icon" href="favicon.png" />
    <link rel="stylesheet" href="reset.css" />
    <link rel="stylesheet" href="site.css" />
    <!-- carrega a fonte Crimson Text nas versões normal, itálico e negrito -->
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Crimson+Text:400,400italic,600">
    <!-- carrega a fonte Open Sans Condensed na versão negrito, -->
    <!-- que é a única necessária para os cabeçalhos            -->
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700">
</head>

<body>
    <main>
        <h1>About Me</h1>
        <div>
            <p>Moro em São Paulo mas atendo clientes do mundo todo. <em>Sou conhecido por fazer produtos de qualidade</em>, durabilidade
                e que agregam valor para meus clientes.</p>
            <p>Trabalho usando a web como plataforma, ou seja, respiro HTML5, CSS3 e JavaScript (ou melhor: ECMASCript). Crio sites para
                todos, seguindo as principais diretivas de acessibilidade, responsividade e web semântica, sem descuidar da qualidade
                de código.</p>

            <h2>Como Trabalho</h2>

            <blockquote>
                <p>João é o melhor desenvolvedor front-end com quem já trabalhei. Muito eficiente e muito capaz. Recomendo sem dúvidas!</p>
                <cite>José Souza, Fiat</cite>
            </blockquote>

            <p>Satisfazer meus clientes é prioridade. Para isso, garanto um processo de desenvolvimento altamente interativo, baseado
                em feedback contínuo. <strong>Não trabalho com escopo fechado</strong>: o cliente é quem decide quando o produto está
                pronto.
            </p>

            <p>Também não trabalho com prazos fechados: <strong>qualidade é importante demais para ser sacrificada.</strong></p>

            <h2>Experiência</h2>

            <blockquote>
                <p>João domina as tecnologias como ninguém. Eu apresentava um problema, ele tinha na ponta da língua a solução mais adequada
                    com as tecnologias mais recentes.</p>
                <cite>Manoel Santos, Petrobrás</cite>
            </blockquote>

            <p>Já desenvolvi projetos para grandes empresas como <a href="http://www.bmw.com" target="blank">BMW</a>, <a href="http://www.uol.com.br"
                 target="blank">UOL</a> e <a href="http://www.ibm.com.br" target="blank">IBM</a>. Neles, o foco principal era entregar
                uma experiência imersiva e impactante para o usuário final sem descuidar do desempenho e da acessibilidade da página.</p>
            <p>Também já fui contratado para transformar grandes portais, como <a href="http://www.terra.com.br" target="blank">Terra</a>                e <a href="http://www.g1.globo.com" target="blank">G1</a>, em páginas responsivas. Fui responsável por renovar o layout,
                reorganizar o conteúdo e re-escrever o código de forma mais reaproveitável.</p>

            <h2>Comunidade</h2>

            <p>Procuro repassar meu conhecimento para a comunidade. Para isso, já dei <a href="portfolio.html" target="blank">diversas palestras</a>                e mantenho um <a href="blog.html" target="blank">blog.</a></p>
        </div>
    </main>

    <img src="eu.jpg" alt="Foto de João da Silva" />

    <aside>
        <h1>João da Silva</h1>
        <nav>
            <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="portfolio.html">Portfolio</a></li>
                <li><a href="bio.html">Sobre Mim</a></li>
                <li><a href="blog.html">Blog</a></li>
                <li><a href="contato.html">Contato</a></li>
            </ul>
        </nav>
        <nav>
            <ul>
                <li>
                    <a href="https://github.com/joaodasilva">
                        <img src="github.png" title="Github">
                    </a>
                </li>
                <li>
                    <a href="https://twitter.com/joaodasilva">
                        <img src="twitter.png" title="Twitter">
                    </a>
                </li>
                <li>
                    <a href="https://br.linkedin.com/pub/joão-da-silva/32/4/508">
                        <img src="linkedin.png" title="LinkedIn">
                    </a>
                </li>
            </ul>
        </nav>
    </aside>

    <footer>
        &copy; João da Silva 2017
    </footer>

    <!--<div id="triangulo"></div>-->
</body>

</html>
body {
    font-family: "Crimson Text", "Times New Roman", serif;
    background-color: #F2FFFC;
    font-size: 120%;
    line-height: 2;
}

h1, h2 {
    font-family: "Open Sans Condensed", "Arial", sans-serif;
}

h2 {
    font-size: 30px;
}

main h1 {
    text-align: center;
    background-color: #851944;
    color: #FFF;
    padding: 25px;
    border-bottom: 10px solid black;
    font-size: 60px;
}

p {
    text-align: justify;
}

blockquote {
    background-color: #D9E5E3;
    margin: 20px 40px;
    border: 10px solid #C2CCCA;
    width: 250px;
    box-sizing: border-box;
}

aside {
    background-color: #3C1D3D;
    color: #F2FFFC;
    text-align: center;
}

aside a {
    color: inherit;
    font-family: "Open Sans Condensed", sans-serif;
}

aside h1 {
    font-size: 30px;
    margin-bottom: 25px;
}

aside li {
    display: inline-block;
}

footer {
    background-color: #000;
    color: #F2FFFC;
}

nav a {
    color: #F2FFFC;
}

main a {
    color: #851944;
}

blockquote, aside, footer {
     padding: 20px;
}

main div {
    width: 720px;
    margin: 30px auto;
}

p {
    margin: 20px 0;
}

strong {
    font-weight: bold;
}

em {
    font-style: italic;
}

#triangulo {
    border-left: 30px solid red;
    width: 200px;
    height: 200px;   
}
2 respostas

Oi Marcos, tudo bem? Poderia compartilhar um print pra gente ver qual o problema realmente no alinhamento?

solução!

Olá Wanderson. Já consegui detectar o problema analisando o CSS do professor. O problema que eu estava questionando não era visual mas as dimensões que a tag <li> assumia quando mudava-se o display dela para inline-block. No vídeo fiquei com a impressão de que as dimensões dela foram automaticamente ajustadas para o tamanho das imagens contidas nas tags <a>, porém ao analisar o CSS disponibilizado verifiquei que o tamanho dos links foi ajustado explicitamente conforme o código abaixo:

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

Somente assim a tag <li> ficou do tamanho certinho das imagens, limitando a área do link de acordo com as dimensões da imagem.