Using line-height to control spacing between elements will cause problems if the text wraps onto another line, and has very limited legitimate uses.
Margins and padding are designed to create space between and around elements, so use the right tool for the job.
HTML elements define your content, not the layout or visual appearance, that is the purpose of CSS.
So CSS should be used to add the space between the elements.
For example:-
h1 {
margin-bottom: 3em;
}
This will give you three lines (at the h1 text size) under any h1 element.