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

Dúvida de cross-browser e código no rodapé

Eu estava notando algumas diferenças no google chrome, e mudei para o firefox dev, pois sempre me dão a sugestão de usar ele para testar código web.

Enfim, basicamente alguns problemas as vezes ocorrem em X navegador, eventualmente reparo que não é o código, vou para o navegador Y, algum outro problema relacionado a outra coisa surge novamente e eu volto para o navegador X e agora X não tem mais o antigo problema. Gostaria de entender o por que isso acontece. Tenho um palpite q é devido a compatibilidade de algumas coisas ou a necessidade de códigos "preventivos" ou a mais para X navegador e o mesmo resultado se tem com menos código para Y navegador.

Visualmente falando... Firefox: http://prntscr.com/qp33l7 | Chrome: http://prntscr.com/qp33vn

Mesmo código no mesmo local da tela com a mesma largura de tela(470px). Mudei para o Firefox pq o Chrome não estava funcionando corretamente a ferramenta de responsividade, ele não estourava os elementos, ele simplesmente diminuia a tela inteira em proporção, o que me impede de tentar consertar com código(Dessa forma: http://prntscr.com/qp34zb | porem isso começava com muito mais pixels, em torno de 500 pra menos isso já começava a acontecer).

Não sei dizer se foi algum erro meu, se algum elemento só da tela faz isso acontecer e depois que ele é ajustado com o código que o professor utiliza ele volta ao normal. A minha questão é que eu não vejo acontecer nos videos de aula e eventulamente acontece comigo, queria entender os motivos dessas coisas para fazer os códigos da maneira correta ou não me desesperar quando é apenas algo basico.

Outro detalhe que quase me esqueci de salientar: O titulo do input no rodapé que está escrito "Entre em contato conosco", ele não fica centralizado de jeito nenhum, foi outra coisa que notei que eu não sei por que acontece, e não entendo por que SOMENTE no Firefox fica dessa maneira. (Essa situação é referente ao mesmo código. http://prntscr.com/qp3bfh)

4 respostas

De qualquer modo vou deixar o código CSS que está sendo utilizado nas prints.

.cabecalhoPrincipal .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.cabecalhoPrincipal-nav {
    display: flex;
}

.rodapePrincipal-patrocinadores .container {
    display: flex;
    justify-content: space-between;
}

.rodapePrincipal-patrocinadores-list {
    display: flex;
    align-items: center;
    justify-content: space-around;
    width: 70%;
    margin-right: 5%;
}

.rodapePrincipal-contatoForm {
    width: 25%;
}

.rodapePrincipal-contatoForm-fieldset {
    display: flex;
}

.rodapePrincipal-navMap-list {
    display: flex;
    flex-flow: column wrap;
    height: 250px;
}

.conteudoPrincipal-cursos {
    display: flex;
    flex-wrap: wrap;
    margin: 1%;
}

.conteudoPrincipal-cursos-link {
    width: 23%;
}

.conteudoPrincipal-cursos-link:nth-child(4n) {
    margin-right: 0;
}

.conteudoPrincipal-cursos-link:nth-child(4n+1) {
    margin-left: 0;
}

/* Mobile  */
@media (max-width: 768px){
    .cabecalhoPrincipal-nav {
        flex-direction: column;
    }

    .cabecalhoPrincipal .container {
        align-items: initial;
        flex-direction: column;
        text-align: center;
    }

    .conteudoPrincipal-cursos {
        flex-direction: column;
    }

    .conteudoPrincipal-cursos-link {
        width: 100%;
        margin: 1% 0;
    }

    .rodapePrincipal-navMap-list {
        height: auto;
    }

    .rodapePrincipal-patrocinadores .container {
        flex-direction: column;
        align-items: center;
    }

    .rodapePrincipal-patrocinadores-list {
        margin: 0;
        width: 100%;
    }

    .rodapePrincipal-contatoForm {
        width: 100%;
    }

    .rodapePrincipal-contatoForm-fieldset {
        text-align: center;
        justify-content: center;
    }
}

O html não foi modificado.

Acredito que uma das minhas dúvidas tenha sido respondida em algumas uma das aulas posteriores, no video: https://cursos.alura.com.br/course/posicione-elementos-com-flexbox/task/22655

Onde ele explica que se os elementos não aceitam diminuir além do mínimo, o navegador automaticamente da "zoom out" na página, inclusive salienta que não é recomendado. Que é exatamente o que estava acontecendo com o Chrome em uma das minhas dúvidas acima.

Entretanto a dúvida do Firefox centralizado permanece e a dúvida do por que no Firefox o elemento se comporta daquela forma.

solução!

Alisson, boa tarde!

Essa é uma ótima observação, daria para falar horas sobre o assunto. Cada navegador possui uma engine (um código) que lida com os arquivos que você entrega pra ele, em geral eles tendem a usar os mesmos padrões para algumas coisas. Mas, existem detalhes que são renderizados de formas diferentes dependendo do navegador, isso pode ocorrer por eles não darem suporte, ou porque eles dão suporte limitado a uma funcionalidade. Para que isso não ocorra no CSS nós geralmente usamos 2 arquivos que limpam o CSS e fazem normalizações entre eles. Esses são:

(E geralmente são importados nessa mesma ordem que eu te passei). O teste definitivo para esses casos é usar diretamente no ambiente que você deseja testar, claro que não dá pra ter todos os celulares em casa kkkkk, mas testar de fato como ele fica no seu celular diretamente já dá uma boa ideia.

Veja que se você colocar o seu css no site https://autoprefixer.github.io/ vai ver que ele irá fazer um css cross browser e pode corrigir o seu problema

Caso tenha tirado sua dúvida, marque como solucionado para alcançar mais alunos!

Espero ter ajudado e bons estudos!

Bom dia Felipe,

Isso foi muito útil de verdade, principalmente o link de autoprefixer, eu imaginei que fosse algo desse estilo porem eu queria confirmar com alguém com mais experiência que eu. Isso irá me ajudar muito em códigos futuros. Muito obrigado!

Na minha dúvida de centralização de elementos/texto ela se corrige se você por nesse mesmo site, onde ele adiciona 'web-kits' do firefox em componentes de posicionamento. Novamente agradeço a resposta completa :)