In the following code:

```
<a href="*">
    <h3>My really really long header</h3>
    <img src="thumbnail.png" width="150" height="100" />
</a>

```

The `h3` overflows its size. If I set the overflow to hidden, an extra margin is added to the bottom of the `h3`. If I change the header to short one, the extra bottom margin does not appear.

After searching SO I found something about collapsing margins. But the point is there is no margin applied to `img` nor to `h3`.

Here is the CSS:

```
h3 {
    width: 300px;
    height: 40px;
    line-height: 40px;
    padding: 0 0 0 10px;
    margin: 0;
    display: inline-block;
    width: 150px;
    background-color: #0f0;
}

a {
    position: relative;
    display: block;
    margin-bottom: 20px;
    padding: 4px;
    border: 1px solid #000;
    width: 160px;
    height: auto;
}

img {
    background-color: #00f;
}

```

[Fiddle](https://jsfiddle.net/sz9yhv79/)

If I set the `font-size` of tag `a` to zero, the extra margin doesn't show up.

**Question**: Is there a proper way (not setting `font-size: 0`) to solve this issue?