
Just like the money you hope you'll get from rich Uncle Dic, inheritance in CSS involves passing something down from ancestors to descendants: the values of CSS properties. The body tag is the great-ancestor of them all, all CSS-targeted tags in your markup descend from it. If you style the body tag like this:
body {font-family: verdana, helvetica, sans-serif; color: blue;}
then the text of every text element in your entire document inherits these styles and displays in blue Verdana (or one of the other choices if Verdana is not available), no matter how far down the hierarchy it is. The efficiency is obvious; rather than specify the desired font for every tag, you set it once in this way as the primary font for the entire site. Then you only need font-family properties for tags that need to be in a different font.
Many CSS properties are inherited in this way, most notably text attributes. However, many CSS properties are not inherited because inheritance doesn't make sense for them. These properties primarily relate to the positioning and display of box elements, such as borders, margins, and padding. For example, imagine that you want to create a sidebar with text in it. You might do this by writing a div(which you can think of as a rectangular box), which has a list of links inside it, and styling the div with a border, say a two-pixel red line. However, it makes no sense for every one of those list items within the div to automaticall get a border too. And they won't, border properties are not inherited.