Flexbox sur IE11: image étirée pour aucune raison?
Je vais avoir un problème avec flexbox sur IE11 et même si j'ai conscience qu'il y a beaucoup de problème connu, je n'ai pas été en mesure de trouver une solution...
<div class="latest-posts">
<article class="post-grid">
<img src="http://lorempixel.com/image_output/cats-q-c-640-480-4.jpg" alt="" />
<div class="article-content">
<h2>THIS IS POST TITLE</h2>
<p>BLAH</p>
</div>
</article>
</div>
Et le CSS...
img {
max-width: 100%;
}
.latest-posts {
margin: 30px auto;
}
article.post-grid {
width: 375px;
float: left;
margin: 0 25px 100px 0;
padding-bottom: 20px;
background-color: #fff;
border: 1px solid #f3f3f3;
border-radius: 2px;
font-size: 14px;
line-height: 26px;
display: flex;
flex: 1 0 auto;
flex-direction: column;
justify-content: flex-start;
align-content: flex-start;
}
.article-content {
padding: 20px 35px;
}
Images deviennent tendu à l'intérieur d'un conteneur flex.
L'application de align-items: flex-start
(j'ai pensé que, puisque "tendu" est la valeur par défaut...) ou justify-content: flex-start
ne semble pas fonctionner.
Codepen: exemple de ce que je veux dire
Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
pour éviter ce drôle de comportement, vous pouvez réinitialiser le
flex-shrink
biens.Cela ressemble à un bug en dépit de ce que dit microsoft :
CSS:
HTML:
http://codepen.io/anon/pen/KzBOvq
min-width
à la même valeur quewidth
.J'ai eu l'image de l'étirement sur la croix de l'axe (étirement en hauteur, à l'aide de flex-direction: de ligne).
Ce stackoverflow Q/Un m'a aidé à résoudre:
Lien ici
J'ai dû mettre le code css suivant sur mon img:
Vous pourriez avoir besoin d'une valeur autre que flex-start bien sûr, selon votre objectif. La mienne est d'avoir mon image dans le haut de la ligne.
J'ai eu un bug similaire dans IE11.
Les styles ont été prises à partir de Bootstrap 4.1, donc, pour la fluidité des images que j'avais:
Dans mon cas, il semble que la raison en est dans
max-width: 100%
donc quand je l'ai changé pourwidth: 100%
le bug a disparu:Cette solution n'est pas pour tous les cas, mais j'espère que cela serait utile.
J'ai essayé toutes les solutions ici, mais rien n'a fonctionné. La seule chose que j'ai été en utilisant flexbox est à la verticale du centre de l'image affichée lorsque vous survolez une autre image. Donc j'ai simplement utilisé un plus solution classique à la
top: 50%; transform: translateY(-50%)
et puis, il était ok. Donc, essentiellement, non pas à l'aide de flexbox à tous, alors.. #hateIEJ'ai eu un problème avec étiré des images de produits dans IE11, et j'ai fait quelques recherches et essayé différentes choses.
C'était mon code:
J'ai alors réalisé que mon image
height: 100%
était le coupable de l'image redimensionnée, et j'ai tout simplement supprimé de ma taille, mais alors mon image était au dessus de mes.productImage
conteneur au lieu d'être centré verticalement. J'ai introduit flex ici et il positionné par le biais d'un simplealign-items: center
, mais bien sûr, cela ne fonctionne pas dans IE11. J'ai aussi essayé laflex-shrink: 0
mais cela ne fonctionne pas non plus.Ensuite, je suis allé de l'avant de sauter à l'aide de flex et j'ai essayé le classique
top: 50%; left: 50%; transform: translate(-50%, -50%);
mais ce n'était pas bon non plus car j'ai déjà eu une transformation dans l'utilisation de mon zoom sur le vol stationnaire effet sur l'image.J'ai fini avec cette solution au lieu de cela:
Il a travaillé comme un charme
dans mon cas, la combinaison de "flex-shrink: 0" proposé par le G-Cyr et "align-auto: flex-commencer", suggérée par Rick Schoonbeek a fait le tour. J'ai eu un wrapper qui a été à l'aide de flex zone au centre de l'image avec un "justify-content: center;"
Tout était bon dans IE 11, Chrome, Safari, sauf IE Bord n'a pas été en mesure d'afficher correctement. en ajoutant les deux attributs de l'image, a résolu le problème avec IE Bord.