It seems that I've already got my problem in previous similar case, but now I've got same problem even after setting font-size and line-height of parent div to 0 and removing any potentially harmful white space.
In the sample (http://jsfiddle.net/vDsR4/2/) I expect height of the header to be exactly 40px, but i'm getting extra 5px of height and can't see any reason for them. (Works similarly in latest Chrome & FF) .
Solved (partially): as noted in answers, the most probable reason for such behaviour is vertical-alignment = baseline (the default one). Now I notice that '[*]' icon is rendered below 'My Title'. To workaround the problem (as soon as all containing elements are supposed to be of the same height) setting vertical-align=top does the job. What is not yet clear to me - why smaller font has more space under baseline than the larger font.
.pagehdr-slice {
padding: 0 32px;
height: 40px;
line-height: 40px;
background-color: #2980BA;
border-bottom: 3px solid #3273a2;
}
.pagehdr-titlebox {
color: #AAD0E8;
width: 200px;
border-right: 1px solid red;
font-size: 0;
line-height: 0;
}
.pagehdr-title-icons, .pagehdr-title {
display: inline-block;
height: 40px;
line-height: 40px;
font-family: Arial;
font-weight: bold;
}
.pagehdr-title-icons {
font-size: 25px;
}
.pagehdr-title {
font-size: 40px;
}
<header class="pagehdr-slice">
<div class="pagehdr-titlebox"
><div class="pagehdr-title-icons">[*]</div
><div class="pagehdr-title">My Title</div
></div>
<div class="pagehdr-splitter"></div>
</header>