Try display: table
instead. It acts similar to inline-block in that it collapses down to to the width of its children, but prevents surrounding inline elements from flowing along side of it the same way an ordinary block element does.
Pergunta
I wanted to add a thicker underline to my h1 tags so I used "border-bottom" as suggested in multiple Stack Overflow questions. However, the border extended well beyond the text, so I decided to add the display property "inline-block" to make the border conform to the text's bounds. This, however, made the element lack a line break after the content. I know I could always add the "br" tag, but I'd prefer to keep that in my styling. Is there anything I can do? Here is my current CSS:
h1
{
font-weight:normal;
margin-bottom:5px;
border-bottom: 2px solid;
display: inline-block;
}
Solução
Outras dicas
Since you don't always want border-bottom (eg, navigation item with padding), this method works better:
h1:after {
content: '';
height: 1px;
background: black;
display:block;
}
If you want more or less space between the text and the underline, add a margin-top
.
If you want a thicker underline, add more height
:
h1:after {
content: '';
height: 2px;
background: black;
display:block;
margin-top: 2px;
}