Como a imagem preenche a caixa (cover/contain) e qual parte fica visível — 9 posições.
Controle de encaixe e posição de imagem/vídeo dentro de um contêiner de tamanho fixo, sem distorcer.
Aplica object-fit (o modo de encaixe) e object-position (qual parte fica visível) direto na tag <img> ou <video> — o contêiner ao redor precisa ter altura definida (fixa, aspect-ratio ou %) pra o encaixe fazer sentido; sem isso a mídia some ou fica esticada.
of-covof-conof-filof-nonof-scdA mesma foto 16:9 dentro de uma caixa quadrada. Repare: of-cov corta, of-con deixa faixa vazia, of-fil distorce.
<div class="ar-sq">
<img src="/foto.jpg" class="of-cov" alt="">
</div>
<!-- cov = corta pra preencher (quase sempre o que você quer)
con = cabe inteira, sobra espaço
fil = estica (distorce — evite)
non = tamanho original
scd = o menor entre none e contain -->
obp-tlobp-tobp-trobp-lobp-c (padrão)obp-robp-blobp-bobp-br<img src="/foto.jpg" class="of-cov obp-t" alt="">
<!-- a sigla é posição vertical + horizontal:
t=topo b=base l=esquerda r=direita c=centro
palavra sozinha = "centro daquele lado" → obp-t = center top -->
obp-c — corta a cabeçaobp-t — mantém o rosto<!-- retrato dentro de caixa quadrada: ancore no topo -->
<div class="ar-sq">
<img src="/pessoa.jpg" class="of-cov obp-t" alt="">
</div>
<!-- é o ajuste que mais resolve em foto de equipe e avatar -->
As mesmas classes funcionam em <video>: é a forma de encaixar um vídeo de fundo numa seção sem distorcer nem deixar tarja preta.
<div class="ar-16-9">
<video class="of-cov" autoplay muted loop playsinline>
<source src="/fundo.mp4" type="video/mp4">
</video>
</div>
Nenhum.
of-covof-conof-filof-nonof-scdobp-tl · obp-t · obp-trobp-l · obp-c · obp-robp-bl · obp-b · obp-brNenhum.
Nenhum.
Nenhuma.
aspect-ratio ou %). Sem isso não existe "caixa" pra encaixar, e a imagem volta a se comportar como imagem normal.of-fil distorce de propósito — só use quando a deformação for intencional.