Esta é uma tradução. Ela pode conter erros ou estar desatualizada em relação à versão original em inglês. Tradutor(a): Tárcio Zemel
Veja, também, o Índice com todas as dicas.
Nesta página:
em, px, pt, cm, in…CSS oferece um número de unidades diferentes para a expressão de
    comprimento. Algumas têm sua história em tipografia, como o ponto
    (pt) e a paica (pc), outros são conhecidos
    devido a seu uso diário, como centímetro (cm) e
    polegada (in). E há, também, uma unidade "mágica" que
    foi inventada especificamente para CSS: px. Isso
    significa que diferentes propriedades precisam de diferente
    unidades?
   
Não, as unidades não têm nada a ver com as propriedades, mas têm tudo a ver com a mídia de saída: tela ou papel.
Não há qualquer restrição sobre quais unidades podem ser usada em
    qual lugar. Se uma propriedade aceita um valor em px
    ('margin: 5px') ela também aceita o valor em polegadas ou
    centímetros ('margin: 1.2in; margin: 0.5cm') e vice-versa.
   
Mas, em geral, você deve usar um conjunto diferente de unidades para exibição em tela do que para a impressão em papel. A tabela abaixo apresenta o uso recomendado:
| Recomendado | Uso ocasional | Não recomendado | |
|---|---|---|---|
| Tela | em, px, % | ex | pt, cm, mm, in, pc | 
| Impresso | em, cm, mm, in, pt, pc, % | px, ex | 
A relação entre as unidades absolutas é: 1in = 2,54cm = 25,4mm = 72pt = 6pc
Se você tiver uma régua pode checar o quão preciso seu
     dispositivo é: aqui está uma caixa com altura de 1in (2,54cm) ↑
     72pt
     ↓
   
As assim chamadas medidas absolutas (cm,
    mm, in, pt e pc)
    significam o mesmo em CSS como em qualquer lugar. Uma medida
    expressa em qualquer uma dessas aparecerá exatamente do tamanho que
    é (dentro da precisão do hardware e do software). Elas não são recomendadas para uso em tela
    porque tamanhos de tela variam muito. Uma tela grande pode ter 60cm
    (24in); uma pequena e portátil, talvez apenas 8cm. E você não olha
    pra elas a partir da mesma distância.
   
As unidades em e ex dependem da fonte e
    podem ser diferentes para cada elemento no documento. em é, simplesmente, o tamanho da fonte. Em um elemento com a fonte de
    2in, 1em será, portanto, 2in. Empressando tamanhos, como margins e paddings, com em significa que eles são relativos ao tamanho da fonte e se
    o usuário tem uma fonte grande (ex. uma tela grande) ou uma fonte
    pequena (ex. dispositivo handheld) , os
    tamanhos serão proporcionais. Declarações como 'text-indent: 1.5em' e 'margin: 1em' são
    extremamente comuns em CSS.
   
A unidade ex é raramente usada. Seu propósito é
    expressar tamanhos relacionados à "altura do x" de uma fonte. A
    altura do x é, grosso modo, a altura de letras em mínusculo como a, c, m, ou o. Fontes que têm o mesmo tamanho (e,
    portanto, o mesmo em) podem variar muito o tamanho de
    suas letras em minúsculo, e, quando é importante que alguma imagem,
    por exemplo, se iguale à altura do x, a unidade ex está
    disponível.
   
A unidade px é a unidade mágica das CSS. Ela não é
    relacionada ao tamanho da fonte atual nem a unidades absolutas. A
    unidade px é definida para ser pequena, mas visível, e
    tal como uma linha de 1px de largura, pode ser apresentada com
    "serrilhamento" (sem anti-aliasing). O quão
    nítida, pequena e visível será, depende do dispositivo e da maneira
    como ele está sendo usado: você o está segurando perto de seus
    olhos, como em um celular, no comprimento dos braços, como num
    monitor de computador ou alguma coisa entre um e outro, como se
    fosse um livro? O px, portanto, não é definido como uma
    medida constante, mas algo que depende do tipo de dispositivo e o
    uso típico deste.
   
Para ter uma idéia da aparência do de um px, imagine
    um monitor CRT de 1990: o menor ponto nele consegue exibir medidas
    de 1/100 de polegada (0,25mm) ou um pouco mais. A unidade px tem esse nome em função dos pixels
    da tela.
   
Atualmente, existem dispositivos que podem, a princípio, exibir
    pontos menores (embora você possa precisar de uma lupa para vê-los).
    Mas documentos do século passado que usaram px em CSS
    continuam sendo exibidos da mesma forma, não importando o
    dispositivo. Impressoras, especialmente, conseguem mostrar linhas
    com muito mais detalhes que 1px, mas, até nas impressoras, uma linha
    de 1px parece muito com como sua exibição ficaria em um monitor de
    computador. Dispositivos mudam, mas o px tem sempre a
    mesma aparência.
   
CSS também define que imagens rasterizadas (como fotos) são, por
    padrão, exibidas com um mapeamento de pixels de
    1px. Assim, uma foto de resolução 600 por 400 será 600px comprida e
    400px alta. Os pixels na foto, portanto, não
    mapeiam os pixels do dispositivo de exibição
    (que pode ser bem pequeno), mas mapeia para unidades em px. Isso torna possível fazer alinhamentos precisos de
    imagens com outros elementos do documento, desde que você use
    unidades em px em sua folha de estilos ao invés de
    pt, cm, etc.
  
em ou px para tamanhos de fonteCSS herdou as unidades pt (ponto) e pc
    (paica) da tipografia. Impressoras têm, tradicionalmente, usado
    essas e unidades similares, com preferência a cm ou
    in. Em CSS, não há razão para usar pt, use
    qualquer outra unidade que preferir. Mas existe uma boa
    razão para não usar nem pt nem outra unidade
    absoluta e usar somente em e px.
   
Aqui estão algumas linhas com diferentes espessuras. Algumas ou todas elas podem ser nítidas, mas, pelo menos as linhas de 1px e 2px devem ser nítidas e visíveis:
0,5pt, 1px, 1pt, 1,5px, 2px
Se as quatro primeiras linhas parecerem todas iguais (ou se a linha de 0,5pt estiver faltando), provavelmente você está olhando para um monitor de computador que não consegue exibir pontos menores do que 1px. Se as linhas parecem aumentar de espessura, provavelmente você está olhando para esta página em uma tela de computador de alta qualidade ou papel. E se a de 1pt parece mais espessa que a de 1,5px, você, provavelmente, tem a tela de um dispositivo móvel.
A unidade mágica de CSS, o px, frequentemente é uma
    boa unidade para se usar, especialmente se o estilo requer
    alinhamento do texto com imagens ou, simplesmente, porque tudo o que
    tem 1px ou é múltiplo de 1px de largura é garantido de parecer
    nítido.
   
Mas, para tamanhos de fonte, é ainda melhor usar em.
    A ideia é (1) não especificar o tamanho de fonte do elemento BODY (em HTML), mas usar o
    tamanho padrão do dispositivo porque esse é um tamanho que o leitor
    consegue ler confortavelmente; e (2) expressar o tamanho da fonte de
    outros elementos em em: 'H1 {font-size: 2.5em}' para fazer o H1 2½ vezes maior que o
    normal.
   
O único lugar que você pode usar pt (ou cm ou in) para especificar o tamanho da fonte é
    em folhas de estilo para impressão, se você precisar ter certeza de
    que a fonte impressa será, exatamente, de um certo tamanho. Mas,
    mesmo assim, usar o tamanho de fonte padrão é, geralmente, melhor.
  
Para tornar ainda mais fácil de fazer as regras de estilo que
    dependem somente do tamanho de fonte padrão, uma nova unidade está
    em desenvolvimento: a rem. A rem
    ("root em") é o tamanho de fonte do
    elemento-raiz do documento. Diferentemente do em, que
    pode ser diferente para cada elemento, o rem é
    constante em todo o documento.
   
Outras unidades em desenvolvimento permitem especificar tamanhos
    relativos à janela do leitor. São a vw e vh. A vw é 1/100 da largura da janela e vh
    é 1/100 da altura da janela.
  
Criado em 12 de janeiro de 2010;
    Última atualização qui 02 out 2025 06:40:52