Les Transitions CSS max-width et max-height
J'ai donc une object
à l'intérieur d'un div
conteneur. L'objet a la max-width (600px)
et max-height (400px)
définir les propriétés. Quand j'ai passez l'objet, les propriétés sont définies à none
donc l'objet de width
et height
peut être rendu correctement. Cependant, lors du déplacement de la souris en dehors de la object
il immédiatement changements, il est width
et height
à la max-width (600px)
et max-height (400px)
valeurs et après une seconde, il revient à l'état initial width
et height
valeurs.
Alors, comment puis-je faire les transitions pour rendre le object
changement c'est width
et height
en douceur, à la fois, lors du survol et lorsque le pointeur de la souris hors.
HTML:
<html>
<!-- Blah blah some head tags here. -->
<body>
<div id="c_a">
<object data="https://www.google.ro/images/srpr/logo11w.png" type="image/png"></object>
</div>
</body>
</html>
CSS:
html{
font-size: larger;
width: 100%;
height: 100%;
}
#c_a object{
transition: width 1s linear .5s, height 1s linear .5s;
-webkit-transition: width 1s linear .5s, height 1s linear .5s;
-o-transition: width 1s linear .5s, height 1s linear .5s;
-moz-transition: width 1s linear .5s, height 1s linear .5s;
position: relative;
width: 100%;
height: 100%;
max-width: 600px;
max-height: 400px;
vertical-align: text-top;
}
#c_a object:hover{
width: 200%;
height: 200%;
max-width: none;
max-height: none;
}
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous n'avez pas la largeur spécifiée sur l'élément parent.
Vous avez pour cent des largeurs sur votre
object
comme 100%. 100% de quoi? C'est le 100% pour cent de la largeur de l'élément parent, votrediv
dans ce cas. Si l'élément parent n'a pas la largeur spécifiée, puis vous vous retrouvez avec un tel problème(s).Solution: Spécifiez une largeur sur votre enveloppe
div
.Démo: http://jsfiddle.net/abhitalks/Pv4y4/4/
CSS:
Note: Idéalement, vous devez aussi spécifier
height
sur le parent.Mise à jour:
Aussi long que la largeur spécifiée sur le parent
div
est dans les règles demax-width
cela fonctionnera très bien. Cependant, une fois que la largeur initiale de manquements ou à l'approche de lamax-width
règle, puis la transition va prendre au-delà de lamax-width
puis reviennent à l'original.Problème: Spécification de la transition séparément sur
width
etheight
ne fonctionnera pas comme il essaie de faire la transition sur les propriétés et doncmax-
es sont ignorés. D'où le saut effet.Solution: tout d'Abord, Ne spécifiez pas le
max-
es commenone
. Parce que vous êtes plus la taille de l'image à 200%, le préciser aussi que 200%. Ensuite, spécifiez transition comme telle, sans propriétés spécifiques. Ce qui rend toutes les propriétés pertinentes obtenir de transition et d'aider à atténuer le problème dans une certaine mesure.Démo 2: http://jsfiddle.net/abhitalks/Pv4y4/9/
CSS:
Espère que ça aide.
div
. Vous est avez à faire.max-width
est violée, alors qu'il s'enclenche à nouveau. Oui. Donnez-moi un peu de temps..Si vous voulez changer
max-width
/max-height
en douceur, vous devez spécifier lemax-*
dans l'état réduit et réglez la largeur/hauteur deauto
: