Digamos que eu queira uma maneira de exibir apenas o centro de 50x50px de uma imagem com 250x250px em HTML. Como eu posso fazer isso. Além disso, existe uma maneira de fazer isso para referências css: url ()?
Estou ciente do clipe em CSS, mas isso parece funcionar apenas quando usado com posicionamento absoluto.
Respostas:
Uma maneira de fazer isso é definir a imagem que você deseja exibir como plano de fundo em um contêiner (td, div, span etc.) e depois ajustar a posição do plano de fundo para obter o sprite desejado.
fonte
background-size
Como mencionado na pergunta, existe a
clip
propriedade css, embora não exigem que o elemento que está sendo cortada éposition: absolute;
(que é uma vergonha):Demonstração JS Fiddle , para experimentação.
Para complementar a resposta original - um pouco tardiamente - estou editando para mostrar o uso de
clip-path
, que substituiu aclip
propriedade agora obsoleta .A
clip-path
propriedade permite uma variedade de opções (mais do que o originalclip
), de:inset
- formas retangulares / cubóides, definidas com quatro valores como 'distância à distância'(top right bottom left)
.circle
-circle(diameter at x-coordinate y-coordinate)
.ellipse
-ellipse(x-axis-length y-axis-length at x-coordinate y-coordinate)
.polygon
- definido por uma série dex
/y
coordenadas em relação à origem do elemento no canto superior esquerdo. À medida que o caminho é fechado automaticamente o número mínimo de pontos realista para um polígono deve ser de três, qualquer menos (duas) é uma linha ou (um) é um ponto:polygon(x-coordinate1 y-coordinate1, x-coordinate2 y-coordinate2, x-coordinate3 y-coordinate3, [etc...])
.url
- pode ser um URL local (usando um seletor de id CSS) ou o URL de um arquivo externo (usando um caminho de arquivo) para identificar um SVG, embora eu ainda não tenha experimentado (ainda). não pode oferecer informações sobre seus benefícios ou ressalvas.Demonstração JS Fiddle , para experimentação.
Referências:
- nota: descontinuado .clip
clip-path
(MDN) .clip-path
(W3C) .fonte
clip
está obsoleto . Mais recenteclip-path
não requer posicionamentoOutra alternativa é a seguinte, embora não seja a mais limpa, pois assume que a imagem é o único elemento em um contêiner, como neste caso:
Você pode usar o recipiente como uma máscara com o tamanho desejado e cercar a imagem com uma margem negativa para movê-la para a posição correta:
A demonstração pode ser vista neste JSFiddle .
Apenas parece funcionar no IE> 9, e provavelmente em todas as versões significativas de todos os outros navegadores.
fonte