Friday, July 26, 2019

html - CSS3 transition doesn't work with display property




I have been trying to use css to show a Hidden Div fade in whenever I hover its parent element.




So far all I have managed to do was to get the hidden div to show, but there are no easing transitions what so ever.



Here is my Code on JSfiddle http://jsfiddle.net/9dsGP/



Here is my Code:



HTML:






CSS:




#header #button {width:200px; background:#eee}

#header #button:hover > .content {display:block; opacity:1;}

#header #button .content:hover { display:block;}

#header #button .content {

-webkit-transition: all .3s ease .15s;
-moz-transition: all .3s ease .15s;

-o-transition: all .3s ease .15s;
-ms-transition: all .3s ease .15s;
transition: all .3s ease .15s;

opacity:0;
clear: both;
display: none;

top: -1px;
left:-160px;

padding: 8px;
min-height: 150px;
border-top: 1px solid #EEEEEE;
border-left: 1px solid #EEEEEE;
border-right: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
-webkit-border-radius: 0px 7px 7px 7px;
-moz-border-radius: 0px 7px 7px 7px;
-khtml-border-radius: 0px 7px 7px 7px;
border-radius: 0px 7px 7px 7px;

-webkit-box-shadow: 0px 2px 2px #DDDDDD;
-moz-box-shadow: 0px 2px 2px #DDDDDD;
box-shadow: 0px 2px 2px #DDDDDD;
background: #FFF;
}


Any clue as to what Im doing wrong? Just trying to get a smooth effect for the hidden content when I hover over the button. Thanks in advance!


Answer





display:none; removes a block from the page as if it were never there.
A block cannot be partially displayed; it’s either there or it’s not.
The same is true for visibility; you can’t expect a block to be half
hidden which, by definition, would be visible! Fortunately, you can
use opacity for fading effects instead.
- reference




As an alternatiive CSS solution, you could play with opacity, height and padding properties to achieve the desirable effect:



#header #button:hover > .content {

opacity:1;
height: 150px;
padding: 8px;
}

#header #button .content {
opacity:0;
height: 0;
padding: 0 8px;
overflow: hidden;

transition: all .3s ease .15s;
}


(Vendor prefixes omitted due to brevity.)



Here is a working demo. Also here is a similar topic on SO.






#header #button {
width:200px;
background:#ddd;
transition: border-radius .3s ease .15s;
}

#header #button:hover, #header #button > .content {
border-radius: 0px 0px 7px 7px;
}


#header #button:hover > .content {
opacity: 1;
height: 150px;
padding: 8px;
}

#header #button > .content {
opacity:0;
clear: both;
height: 0;

padding: 0 8px;
overflow: hidden;

-webkit-transition: all .3s ease .15s;
-moz-transition: all .3s ease .15s;
-o-transition: all .3s ease .15s;
-ms-transition: all .3s ease .15s;
transition: all .3s ease .15s;

border: 1px solid #ddd;


-webkit-box-shadow: 0px 2px 2px #ddd;
-moz-box-shadow: 0px 2px 2px #ddd;
box-shadow: 0px 2px 2px #ddd;
background: #FFF;
}

#button > span { display: inline-block; padding: .5em 1em }





No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...