Disons que je veux un moyen d'afficher uniquement le centre 50x50px d'une image de 250x250px en HTML. Comment puis je faire ça. Aussi, y a-t-il un moyen de faire cela pour les références css: url ()?
Je connais le clip en CSS, mais cela ne semble fonctionner que lorsqu'il est utilisé avec un positionnement absolu.
Réponses:
Une façon de le faire est de définir l'image que vous souhaitez afficher comme arrière-plan dans un conteneur (td, div, span, etc.), puis d'ajuster la position de l'arrière-plan pour obtenir le sprite souhaité.
la source
background-size
Comme il est mentionné dans la question, il y a la
clip
propriété css, bien qu'il ne nécessite que l'élément clipsage estposition: absolute;
( ce qui est dommage):Démo JS Fiddle , pour expérimentation.
Pour compléter la réponse originale - un peu tardivement - je modifie pour montrer l'utilisation de
clip-path
, qui a remplacé laclip
propriété désormais obsolète .La
clip-path
propriété permet une gamme d'options (plus que l'originalclip
), de:inset
- formes rectangulaires / cuboïdes, définies avec quatre valeurs comme «distance-de»(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
- défini par une série de coordonnéesx
/y
par rapport à l'origine de l'élément du coin supérieur gauche. Comme le chemin est fermé automatiquement le nombre minimum de points réaliste pour un polygone doit être trois, tout moins (deux) est une ligne ou (un) est un point:polygon(x-coordinate1 y-coordinate1, x-coordinate2 y-coordinate2, x-coordinate3 y-coordinate3, [etc...])
.url
- cela peut être soit une URL locale (en utilisant un sélecteur d'id CSS) ou l'URL d'un fichier externe (en utilisant un chemin de fichier) pour identifier un SVG, bien que je n'ai pas expérimenté l'un ou l'autre (pour le moment), donc je ne peut offrir aucun aperçu de leur avantage ou de leur mise en garde.Démo JS Fiddle , pour expérimentation.
Références:
- Remarque: obsolète .clip
clip-path
(MDN) .clip-path
(W3C) .la source
clip
est obsolète . Le plus récentclip-path
ne nécessite pas de positionnementUne autre alternative est la suivante, mais pas la plus propre car elle suppose que l'image est le seul élément d'un conteneur, comme dans ce cas:
Vous pouvez ensuite utiliser le conteneur comme masque avec la taille souhaitée, et entourer l'image avec une marge négative pour la déplacer dans la bonne position:
La démo peut être vue dans ce JSFiddle .
Ne semble fonctionner que dans IE> 9, et probablement toutes les versions importantes de tous les autres navigateurs.
la source