Ваш тег <a>
является встроенным элементом, и он появляется в HTML5-элементах, которые зависят от высоты строки его родительского элемента 'block' (или вплоть до стиля <body>
, если это непосредственный родитель).
Пример:
body { line-height:20px; }
a { line-height:12px; }
и эта разметка:
<body>
<a href="#">test</a>
</body>
Тег <a>
будет иметь высоту строки 20px, а не 12px.
Так что ваш «inline» <a style="line-height:12px;" href="#">something</a>
не работал, но работал, когда вы обернули его в элемент <div>
уровня 'block', потому что элементы block могут определять высоту строки.
Лучший способ, чем раздутая разметка, заключив встроенный элемент в элемент блока, просто используйте CSS, чтобы тег отображал 'inline-block'.
<a style="display:inline-block; line-height:12px;" href="#">something</a>
Еще лучше, дайте вашему <a>
класс (замените «xx» ниже на что-то семантическое):
<a class="xx" href="#">something</a>
Затем в вашем CSS-файле установите для этого класса значение 'inline-block':
.xx { display:inline-block; line-height:12px; }
Надеюсь, это поможет.