How can one make the font size grow bigger on mouse over? Color transitions work fine over time, but the font size switches immediately for some reason.
Sample code:
body p {
font-size: 12px;
color: #0F9;
transition:font-size 12s;
-moz-transition:font-size 12s; /* Firefox 4 */
-webkit-transition:font-size 12s; /* Safari and Chrome */
-o-transition:font-size 12s;
transition:color 12s;
-moz-transition:color 12s; /* Firefox 4 */
-webkit-transition:color 12s; /* Safari and Chrome */
-o-transition:color 12s;
}
p:hover {
font-size: 40px;
color:#FC0;
}
The color transitions fine over time, but the font switches immediately for some dagnabbit reason.
Your font-size transition is being overwritten by your color transition.
transition: font-size 12s; /* transition is set to 'font-size 12s' */
transition: color 12s; /* transition is set to 'color 12s' !! */
Instead, you must combine them all into one declaration:
transition: color 12s, font-size 12s;
See: http://jsfiddle.net/thirtydot/6HCRs/
-webkit-transition: color 12s, font-size 12s;
-moz-transition: color 12s, font-size 12s;
-o-transition: color 12s, font-size 12s;
transition: color 12s, font-size 12s;
(Or, just use the all keyword: transition: all 12s; - http://jsfiddle.net/thirtydot/6HCRs/1/).
Try set transition for all properties:
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
it is works as well.
OR
just font: transition: font 0.3s ease.
Transitions for font-size seem to step by pixel and thus aren't smooth.
If it's just one line, you might be able to use transform: scale(.8). Scale down and not up so you don't lose quality. You will likely also need to use transform-origin: 0 0 or a different value depending on your text alignment.
JS Fiddle Demo
An alternative would be that you can also use a framework such as jQuery Transit to do this easily for you:
Javascript:
$("p").hover( function () {
//On hover in
$("p").transition({ 'color': '#FC0', 'font-size': '40px' }, 1000);
}, function () {
//On hover out
$("p").transition({ 'color': '#0F9', 'font-size': '12px' }, 1000);
});
CSS:
p
{
font-size: 12px;
color: #0F9;
}
来源:https://stackoverflow.com/questions/9311116/can-css3-transition-font-size