Reputation: 10538
How can I force line height in CSS, in such way that no big letters will stretch the line height. Instead, they should clip under the above line, or even merge with the above line.
CSS line-height
seems to work like MS Word’s “at least” line height option by default. I want to make it work like MS Word’s “exactly” option.
For example:
There, the lines aren't the same height, because one line has some bigger letters in it. I want all lines to be the same height regardless.
Upvotes: 7
Views: 4877
Reputation: 21114
Glyphs (the visual representations of a character) are centered vertically within an inline box. If the line height is larger than the content height, half the difference is added as space at the top; the same amount is also added at the bottom.
That's the case for the main, non bold, text in your example.
When set on a non-replaced inline element, it specifies the height used to calculate the height of the surrounding line box.
So in the bold text, you'll still have 8.5px above the font-size, which causes the issue.
You can prevent it by setting a line-height smaller than the font-size ( check this demo ). As it's an inline element, and there's no overflow:hidden;
it will still be enterely visible, but it won't add any pixel to the rest of the text's line height.
As far as i know, it's not possible to "stretch" the letters, unless you use some CSS3 properties like transform:scale(value)
etc.
Code:
<p>ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac <b>ac</b>
ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac</p>
CSS:
p {
line-height:17px;
font-size:15px;
width:150px;
}
b {
font-size:25px;
line-height:1px;
}
Upvotes: 8
Reputation: 183
Not sure if this is what your after but this will cut any text that is large than the line-height.
b {
display:inline-block;
overflow:hidden;
vertical-align:top;
}
Upvotes: 2
Reputation: 65
No way. You can think about enlarge the line-height, for example 30px, and you will get the same height all the lines.
Upvotes: -1