AtoZ CSS Quick Tip: Using Hover and Height

Share this article

AtoZ CSS Quick Tip: Using Hover and Height

This article is a part of our AtoZ CSS Series. You can find other entries to the series here View the full screencast and transcript for Hover here.

Welcome to our AtoZ CSS series! In this series, I’ll be exploring different CSS values (and properties) beginning with a letter of the alphabet. We know that sometimes screencasts are just not enough, in this article we’ve added a new quick tip about Hover for you. 1H-01

H is for Hover and Height

There’s not too much more I can say about Hover that I haven’t already covered in the video about the letter H. However, there are some cool animations that you can apply for a hover state. Google “CSS hover effects” and you’ll find plenty.

Here are a couple of sites that have some nifty effects:

Further to those, I recently produced a video for Code School, all about a library called hover.css.

Another CSS H (that I haven’t gone into much detail about on this site) is height.

The height property is used to define the content height on a containing element. All the standard length units (like px, em, rem, %, vw, vh and others) can be used to control height.

If the height of an element is not specifically set, it’s calculated as the minimum height to hold all the containing elements (corresponding to the default value auto).

It’s generally advisable to avoid explicitly setting a height on any elements as it restricts the flexibility of the element – meaning it can’t grow as the content changes. This is particularly risky when working on a responsive design when content needs to reflow vertically as the available width changes.

As such, I tend to only set height on elements that have predefined dimensions – like images. Another use case is when using absolute or fixed position as height (and width) shrink wrap around positioned elements.

Here’s an example that demonstrates the problem with setting a fixed height.

See the Pen The height property by SitePoint (@SitePoint) on CodePen.

While the first set of text looks styled correctly, as soon as the text is shorter or longer than the styling no longer looks correct – the containing box appears too big, or the text flows outside the box.

A solution to the overflowing text could be to use the overflow property, but this cuts off the text and makes it unreadable.

This situation could be completely avoided by not specifying the height in the first place. If I can improve the flexibility of my code without doing anything at all, that gets my vote!

Frequently Asked Questions (FAQs) about CSS Hover Height

What is the CSS hover effect and how does it work?

The CSS hover effect is a pseudo-class that is used to apply styles to an element when the mouse pointer is over it. It is commonly used to create interactive effects on web pages, such as changing the color of a button when the mouse hovers over it. The hover effect is applied by using the “:hover” selector followed by the CSS properties you want to change. For example, to change the background color of a button to red when the mouse hovers over it, you would use the following code:

button:hover {
background-color: red;
}

How can I use the CSS hover effect to change the height of an element?

You can use the CSS hover effect to change the height of an element by specifying a new height in the hover rule. For example, if you want to increase the height of a div element when the mouse hovers over it, you could use the following code:

div:hover {
height: 200px;
}
In this example, the height of the div will change to 200px when the mouse hovers over it.

Can I use the CSS hover effect with media queries?

Yes, you can use the CSS hover effect with media queries to create responsive hover effects. For example, you could use a media query to only apply a hover effect if the screen is a certain width. Here’s an example:

@media (min-width: 600px) {
div:hover {
height: 200px;
}
}
In this example, the hover effect will only be applied if the screen is at least 600px wide.

Can I use the CSS hover effect to change multiple properties at once?

Yes, you can use the CSS hover effect to change multiple properties at once. For example, you could change the height, width, and background color of a div element when the mouse hovers over it. Here’s an example:

div:hover {
height: 200px;
width: 200px;
background-color: red;
}
In this example, the height, width, and background color of the div will change when the mouse hovers over it.

Can I use the CSS hover effect to create a transition effect?

Yes, you can use the CSS hover effect in combination with the transition property to create a smooth transition effect. For example, you could create a transition effect that gradually changes the height of a div element over a period of 2 seconds when the mouse hovers over it. Here’s an example:

div {
transition: height 2s;
}

div:hover {
height: 200px;
}
In this example, the height of the div will gradually change to 200px over a period of 2 seconds when the mouse hovers over it.

Guy RoutledgeGuy Routledge
View Author

Front-end dev and teacher at The General Assembly London. A to Z CSS Screencaster, Founder of sapling.digital and Co-founder of The Food Rush.

aleczandergAtoZ CSSCSS heighthover stateslearn-advanced-css
Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week