Points de base
object-fit
et object-position
peuvent être utilisées pour redimensionner et positionner les images intégrées et autres éléments de remplacement, similaires aux propriétés CSS background-size
et background-position
pour les images d'arrière-plan. object-fit
offre une variété d'options pour contrôler la façon dont l'image est affichée dans une zone spécifiée et peut masquer une partie de l'image si nécessaire. Ceci est utile pour adapter des images à un espace spécifique sans distorsion. object-fit
a cinq valeurs de mot-clé principales: cover
, contain
, none
, scale-down
, fill
et object-position
50% 50%
contrôle la position d'un élément d'image dans sa zone de contenu. Sa valeur par défaut est object-fit
Bien que object-position
et
background-size
CSS fournit les propriétés background-position
et object-fit
pour redimensionner et positionner l'image d'arrière-plan. Les propriétés object-position
et object-fit
nous permettent d'effectuer des opérations similaires sur des images intégrées (et d'autres éléments de remplacement, tels que des vidéos). Cet article plongera dans la façon d'adapter une image à un espace spécifique en utilisant object-position
et comment utiliser
Utilisations de object-fit
La fonction de l'attribut sur une image est similaire à celle de object-fit
sur une image d'arrière-plan: il offre une variété d'options pour contrôler la façon dont l'image est affichée dans une zone spécifiée et peut masquer une partie de le contenu de l'image si nécessaire. Cette zone spécifiée peut avoir une largeur et une hauteur fixes, ou il peut être un espace plus réactif, comme une zone de maillage, qui se développe, se rétrécit et se plie en fonction de la taille de la fenêtre de navigateur. background-size
Comment travailler
Chaque élément HTML a sa propre "boîte de contenu" qui représente l'espace occupé par l'élément. Par défaut, la boîte de contenu de l'image correspond à sa taille naturelle. Lorsque nous appliquons différentes largeurs et / ou hauteurs à l'image, nous modifions en fait la taille de la boîte de contenu. Si la taille de la boîte de contenu change, l'image remplira toujours la zone de contenu. Donc, si nous avons une image de 300px x 300px et réglé sa taille sur 300px x 200px, l'image apparaîtra déformée. Paramètres Pour illustrer en détail le fonctionnement des propriétés Affichez un exemple de SitePoint (@SitePoint) sur CodePen: objet-FIT: Configuration Pour notre démonstration d'image, nous utiliserons l'image suivante (Oia, Santorini, Grèce). Ses dimensions naturelles sont de 400px x 600px. Notre image est beaucoup plus grande que notre div et si nous plaçons l'image à l'intérieur de la div, elle débordera comme indiqué ci-dessous. Affichez un exemple de SitePoint (@SitePoint) sur Codepen: objet-FIT: setup2 Notre objectif est d'empêcher l'image de déborder son conteneur comme celle-ci tout en le rendant confortable pour s'adapter au conteneur, et Si nous utilisons une image d'arrière-plan, nous pouvons définir quelque chose de similaire à C'est à quoi il ressemble. Affichez un exemple de SitePoint (@SitePoint) sur Codepen: objet-FIT: setup3 L'image et ses boîtes de contenu s'adaptent désormais parfaitement avec le conteneur, mais l'image est gravement déformée. C'est là que la magie de en utilisant Affichez un exemple de SitePoint (@SitePoint) sur Codepen: objet-FIT: Cover Parce que l'image est très élevée, nous voyons sa pleine largeur, mais nous ne pouvons pas voir sa pleine hauteur, comme indiqué dans l'image suivante. Ce qui mérite d'être noté ici est l'emplacement de l'image. Contrairement à Affichez un exemple de SitePoint (@SitePoint) sur Codepen: objet-FIT: contient Il semble que nous puissions obtenir le même résultat que ci-dessus en définissant simplement Affichez un exemple de SitePoint (@SitePoint) sur Codepen: objet-FIT: Aucun Contrairement à Notez à nouveau que le centre de l'image est aligné avec le centre de la zone de contenu par défaut. Notez également que ou les mêmes que
Évidemment, dans notre exemple actuel, il sélectionnera parce que notre conteneur . Si notre conteneur . En effet,, par défaut, l'image remplit sa boîte de contenu quelle que soit la taille définie.
Parce que la propriété peut déformer l'image, ce n'est peut-être pas le meilleur choix dans la plupart des cas.
Dans l'exemple ci-dessus, nous avons utilisé
Essayez de modifier les valeurs sur l'attribut pour écraser, remplir, rétrécir et aucun dans l'exemple ci-dessus pour voir le comportement de chaque valeur. Le résultat est le même que le résultat de l'image définie à 100% de largeur et de hauteur et incluse dans le Div réglé sur 300px x 300px.
utilisé dans la disposition réactive
Les propriétés Affichez un exemple de SitePoint (@SitePoint) sur Codepen: Alors que la fenêtre et la zone de grille se développent et se rétrécissent, la valeur Pour en savoir plus sur les zones de grille, consultez notre guide de préparation de la grille CSS. Utiliser Tout comme en utilisant Comme nous pouvons le voir, la valeur par défaut de Supposons que nous voulons maintenant positionner notre image dans le coin inférieur droit. Nous pouvons utiliser le mot-clé Affichez des exemples de SitePoint (@SitePoint) sur Codepen: Position d'objet 1: Mots-clés L'image suivante illustre l'emplacement actuel de notre image. Vous pouvez utiliser des mots clés de ciblage dans l'exemple ci-dessus pour voir comment ils fonctionnent, ainsi que les mots clés Nous pouvons également compenser l'image à partir de son conteneur à l'aide d'unités telles que des pixels ou EM. Par exemple: Affichez un exemple de SitePoint (@SitePoint) sur Codepen: Position d'objet 2: Unités Nous pouvons faire des décalages similaires dans le coin inférieur droit en combinant des unités et des mots clés, comme indiqué ci-dessous: Affichez un exemple de SitePoint (@SitePoint) sur Codepen: Position d'objet 3: Unités et mots clés Nous avons vu que nous pouvons utiliser des pourcentages pour localiser les images dans la zone de contenu. Comme avec l'attribut Si nous définissons Nous pouvons le voir dans la démo de codepen ci-dessous. Afficher des exemples de SitePoint (@SitePoint) sur Codepen: Position d'objet 4: pourcentages Conclusion Les situations plus courantes sont la nécessité d'adapter l'image à un espace spécifique, donc pour en savoir plus sur Enfin, comme mentionné ci-dessus, il vaut la peine de comparer les propriétés FAQS (FAQ) sur CSS
Les propriétés . pour redimensionner l'image?
Non, de l'attribut pour centrer l'image dans sa boîte de contenu. Voici un exemple:
. Ces valeurs indiquent l'emplacement du contenu par rapport à la zone de contenu. Par exemple, , la valeur par défaut est et
et object-fit
offre une variété d'options pour nous afficher des images dans la zone de contenu redimensionnée. Nous pouvons masquer une partie de l'image ou forcer l'image à remplir partiellement sa boîte de contenu afin que l'image soit complètement visible et ne se déforme pas. object-fit
, nous plaçons une image dans un div centré à l'aide d'une disposition de grille. Le div a un fond brun et une bordure en pointillés est fournie par un pseudo-élément ::before
, ce qui nous aidera à comprendre quels changements sont arrivés à l'image. object-fit
nous aidera à y parvenir. background-size: cover
, et l'image d'arrière-plan sera confinée dans la zone du conteneur. Cependant, comme nous pouvons le voir, pour que object-fit
fonctionne, nous devons d'abord définir la largeur et la hauteur de la boîte de contenu de l'image afin qu'elle soit différente des dimensions naturelles. Dans l'exemple suivant, nous limitons la largeur et la hauteur de l'image à 100% afin que sa boîte de contenu correspond à la taille du conteneur div: img {
width: 100%;
height: 100%;
}
object-fit
entre en jeu, voyons ce qu'elle peut offrir. object-fit
Adap Images au conteneur object-fit
fournit cinq valeurs de mot-clé principales pour déterminer comment une image est affichée dans son conteneur. Deux des mots clés - cover
et contain
- effectuent la même fonction que leurs homologues background-size
.
object-fit: cover
cover
La valeur oblige l'image à couvrir complètement la zone du conteneur, affichant autant d'images que possible sans distorsion: img {
width: 100%;
height: 100%;
}
cover
sont probablement la valeur la plus pratique fournie et sont préférées dans la plupart des cas. background-position
(par défaut est 0 0
, qui localise l'image d'arrière-plan du coin supérieur gauche du conteneur), la valeur par défaut object-position
est 50% 50%
, qui centre l'image dans sa boîte de contenu. Lorsque nous examinons la propriété object-position
plus tard, nous apprendrons à spécifier quelle partie de l'image est visible.
object-fit: contain
contain
La valeur force l'image à s'adapter pleinement à sa boîte de contenu, mais pas déformée. L'image conserve son rapport d'aspect naturel afin qu'il ne remplisse pas son conteneur: img {
width: 100%;
height: 100%;
object-fit: cover;
}
height: 100%
sur l'image. Mais ce n'est pas le cas, car cela positionnera l'image vers la gauche au lieu de centrer, ce qui est le paramètre par défaut pour object-fit
. Combiné avec object-position
, object-fit
, il existe plus d'options pour la façon dont les images sont positionnées dans les conteneurs.
Les propriétés object-fit: none
none
permettent à l'image de rester dans sa taille d'origine naturelle. Seules les images partielles qui peuvent s'adapter à la boîte de contenu redimensionnée sont visibles. object-fit: cover
, nos images ne sont pas obligées d'être entièrement visibles le long d'un axe. L'image d'origine est plus large et plus haute que la boîte de contenu, donc elle déborde dans les deux sens, comme indiqué dans l'image suivante. object-fit: none
ne signifie pas que object-fit
ne fasse rien. Comme nous l'avons vu, il fait beaucoup de choses par rapport à ne pas avoir le object-fit
réglé du tout. (Pour rappel, veuillez vérifier la situation après la suppression object-fit: none
dans l'exemple ci-dessus.)
Les attributs sont soit les mêmes que object-fit: scale-down
scale-down
. Il sélectionne none
pour faire afficher l'image de l'image. contain
Affichez un exemple de SitePoint (@SitePoint) sur Codepen: objet-ajustement: Scale-Down contain
est plus grand que l'image, alors dominera et l'image conservera sa taille naturelle au lieu de remplir le conteneur dans une direction, que vous pouvez voir dans cette démo de codepen.
none
Si nous modifions la valeur
dans la démo, c'est comme s'il n'y avait pas de paramètre object-fit: fill
en object-fit
fill
Affichez un exemple de SitePoint (@SitePoint) sur Codepen: object-fit
objet-FIT: remplissez fill
Utiliser sans conteneur object-fit
pour redimensionner l'image dans le conteneur Div, mais le principe que nous avons vu dans la pratique fonctionne aussi bien sans ce conteneur. Ce qui compte, c'est la taille de la zone de contenu de l'image et la façon dont l'image est affichée dans sa boîte de contenu.
object-fit
img {
width: 100%;
height: 100%;
}
object-fit
object-fit
peuvent être les plus utiles lorsque la taille de la zone spécifiée de l'image répond à la taille de la fenêtre du navigateur. La démonstration suivante attribue nos images à une zone de grille spécifique et flexible:
object-fit
objet-ajustement dans une zone réactive img {
width: 100%;
height: 100%;
object-fit: cover;
}
cover
garantit que l'image s'adapte toujours parfaitement à sa zone de grille, modifiant la partie visible de l'image afin qu'elle ne se déforme jamais. (Afficher la démo en vue pleine page pour les meilleurs résultats.) object-position
Définir la position de l'image background-position
pour définir la position de l'image d'arrière-plan dans son conteneur, l'attribut object-position
contrôle la position des éléments d'image dans sa zone de contenu. object-position
est 50% 50%
, ce qui signifie que le centre d'image est aligné avec le centre de la boîte de contenu sur les axes horizontaux et verticaux. Nous pouvons le changer en utilisant une série de valeurs de mots clés (en haut, en bas, à gauche, à droite, au centre) ou en utilisant des valeurs de longueur (telles que PX, EM ou%) ou les deux. right bottom
ou la valeur de pourcentage 100% 100%
: img {
width: 100%;
height: 100%;
}
object-fit
, mais les résultats devraient être faciles à prévoir. img {
width: 100%;
height: 100%;
object-fit: cover;
}
img {
width: 100%;
height: 100%;
object-fit: contain;
}
background-position
, l'utilisation de pourcentages avec object-position
peut être un peu déroutante. object-position
S 50% 50%
signifie que le centre de l'image est aligné avec le centre de la boîte de contenu sur les axes horizontaux et verticaux. object-position
à 20% 40%
, cela signifie qu'une ligne verticale à 20% du côté gauche de l'image coïncide avec une ligne verticale à 20% du côté gauche de la boîte de contenu et un horizontal Ligne à 40% du haut de l'image coïncidant avec une ligne horizontale à 40% du haut de la boîte de contenu, comme le montre la figure ci-dessous. object-fit
sont destinés à être utilisés avec tout type d'éléments de remplacement, tels que des images, des vidéos, des iframes et des objets intégrés. Dans quelle mesure il est utile d'adapter des éléments comme des vidéos dans des domaines définis où certains éléments peuvent être cachés est probablement une question à discuter, mais il ne fait aucun doute qu'il existe des cas d'utilisation viables. Une meilleure option pourrait être de définir la largeur de l'Iframe sur le width: 100%
de l'espace libre, puis d'utiliser la propriété aspect-ratio
pour maintenir sa proportion. object-fit
est très utile pour permettre à l'image de s'adapter à l'espace sans distorsion (même si une partie de l'image doit être cachée). object-fit
et object-position
, consultez la page MDN pour ces propriétés:
object-fit
et object-position
avec les propriétés background-size
et background-position
, qui ont de nombreuses similitudes. Voyez comment utiliser CSS background-size
et background-position
pour en savoir plus. object-fit
object-position
et Propriétés
Quelle est la différence entre
dans CSS? object-fit
object-position
et object-fit
et object-position
dans les object-fit
CSS sont utilisées pour contrôler le contenu de l'élément de remplacement, tel qu'une image ou une vidéo. L'attribut background-size
définit comment un élément réagit à la hauteur et à la largeur de sa boîte de contenu. Il est similaire à fill
dans CSS, mais fonctionne avec des éléments de remplacement. Il a cinq valeurs: contain
, cover
, none
, scale-down
, object-position
background-position
En revanche, l'attribut , mais fonctionne avec des éléments de remplacement. Il faut deux valeurs pour représenter les coordonnées x et y, qui définissent la position de l'élément.
Comment utiliser l'attribut object-fit
object-fit
Les propriétés img {
width: 100%;
height: 100%;
}
Puis-je utiliser
object-position
avec l'image d'arrière-plan? object-position
Les attributs ne peuvent pas être utilisés avec des images d'arrière-plan. Il ne fonctionne qu'avec des éléments de remplacement tels que img
, video
ou embed
. Pour les images d'arrière-plan, vous pouvez utiliser l'attribut background-position
à la place.
La valeur object-fit
contain
? object-fit
de la propriété contain
redimensionne le contenu pour s'adapter à la zone de contenu tout en conservant son rapport d'aspect. Si son rapport d'aspect ne correspond pas au rapport d'aspect du contenu, le contenu entier sera visible, mais il peut encore y avoir un espace dans la boîte de contenu.
object-fit
? none
La valeur object-fit
signifie que le contenu ignorera la hauteur et la largeur de la zone de contenu. Il conservera sa taille d'origine, ce qui peut entraîner la culture du contenu s'il est plus grand que la boîte de contenu. none
?
Vous pouvez utiliser la propriété object-position
object-position
img {
width: 100%;
height: 100%;
}
?
Oui, vous pouvez utiliser les valeurs de pourcentage dans l'attribut object-position
object-position
localise le contenu dans le coin supérieur gauche de la boîte de contenu, tandis que 0% 0%
le localise dans le coin inférieur droit. 100% 100%
?
Si vous ne spécifiez pas la valeur object-position
object-position
, qui centrera le contenu dans sa zone de contenu. 50% 50%
et
Oui, vous pouvez utiliser les propriétés object-fit
en même temps? object-position
object-fit
pour contrôler la taille et la position du contenu. Voici un exemple: object-position
img {
width: 100%;
height: 100%;
object-fit: cover;
}
et
Tous les navigateurs modernes, y compris Chrome, Firefox, Safari et Edge, soutiennent largement les propriétés object-fit
? object-position
object-fit
. Cependant, Internet Explorer ne les soutient pas. object-position
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!