O navegador atual da Web percorreu um longo caminho desde os dias malucos nos quais qualquer tipo de consistência entre navegadores era uma ilusão. Os navegadores da web de hoje são todos muito compatíveis com os padrões. Eles tocam bem juntos e oferecem uma exibição de página bastante consistente nos vários navegadores. Isso inclui as versões mais recentes do Google Chrome, do Microsoft Edge, do Mozilla Firefox, do Opera, do Safari e dos diversos navegadores encontrados na miríade de dispositivos móveis usados para acessar o website hoje.
Embora o progresso certamente tenha sido feito quando se trata de navegadores da Web e como eles exibem CSS, ainda há inconsistências entre essas várias opções de software. Uma das inconsistências comuns é como esses navegadores calculam margens, preenchimentos e bordas por padrão.
Devido a esses aspectos do efeito de modelo de caixa de todos os elementos HTML, e porque eles são essenciais na criação de layouts de página, uma exibição inconsistente significa que uma página pode ficar ótima em um navegador, mas parece um pouco diferente em outro. Para combater esse problema, muitos web designers normalizam esses aspectos do modelo de caixa. Essa prática também é conhecida como "zerar" os valores de margens, preenchimento e bordas.
Uma nota sobre os padrões do navegador
Todos os navegadores da Web possuem configurações padrão para determinados aspectos de exibição de uma página. Por exemplo, os hiperlinks são azuis e sublinhados por padrão. Isso é consistente em vários navegadores e, embora seja algo que a maioria dos designers modifique para atender às necessidades de design de seu projeto específico, o fato de estarem todos começando com os mesmos padrões facilita a realização dessas alterações. Infelizmente, o valor padrão para margens, preenchimento e bordas não possui o mesmo nível de consistência entre navegadores.
Normalizando Valores para Margens e Padding
A melhor maneira de resolver o problema do modelo de caixa inconsistente é definir todas as margens e valores de preenchimento dos elementos HTML como zero. Existem algumas maneiras de você adicionar essa regra de CSS à sua folha de estilo:
Essa regra de CSS usa o caractere * ou curinga. Esse caractere significa "todos os elementos" e basicamente selecionaria cada elemento HTML e definiria as margens e o preenchimento como 0. Mesmo que essa regra seja muito inespecífica, por estar em sua folha de estilo externa, ela terá uma especificidade mais alta que o navegador padrão. valores fazem. Uma vez que esses padrões são o que você está sobrescrevendo, esse estilo irá realizar o que você está planejando fazer.
Outra opção é aplicar esses valores aos elementos HTML e body. Como todos os outros elementos da sua página serão filhos desses dois elementos, a cascata CSS deve aplicar esses valores a todos esses outros elementos.
Isso iniciará seu design no mesmo lugar em todos os navegadores, mas uma coisa a ser lembrada é que, assim que você desativar todas as margens e preenchimentos, precisará ativá-las seletivamente para partes específicas da sua página da Web para obter a aparência e sentir que seu design exige.
Fronteiras
Você pode estar pensando "mas nenhum navegador tem uma borda ao redor do elemento body por padrão". Isso não é estritamente verdadeiro. Versões mais antigas do Internet Explorer têm uma borda transparente ou invisível ao redor dos elementos. A menos que você defina a borda como 0, essa borda pode atrapalhar seus layouts de página. Se você decidiu que continuará a oferecer suporte a essas versões antiquadas do IE, será necessário abordar isso adicionando o seguinte ao seu corpo e estilos HTML:
HTML, body {margem: 0px;preenchimento: 0px; fronteira: 0px;} Semelhante a como você desativou as margens e o preenchimento, esse novo estilo também desativará as bordas padrão. Você também pode fazer a mesma coisa usando o seletor de caractere curinga mostrado anteriormente no artigo. Artigo original de Jennifer Krynin. Editado por Jeremy Girard em 27/09/16.