Вы должны применить vertical-align: middle
к обоим элементам, чтобы он был идеально отцентрирован.
Принятый ответ делает значок по центру около половины высоты x текста рядом с ним (как определено в CSS-спецификациях ). Что может быть достаточно хорошим, но может выглядеть немного не так, если текст имеет восходящие или спусковые элементы, выделяющиеся сверху или снизу:
Слева текст не выровнен, справа - как показано выше. Демонстрацию в реальном времени можно найти в этой статье о вертикальном выравнивании .
Кто-нибудь говорил о том, почему vertical-align: top
работает в сценарии? Изображение в вопросе, вероятно, выше текста и, таким образом, определяет верхний край линейного блока. vertical-align: top
на элементе span, затем просто поместите его в верхнюю часть линейного блока.
Основное различие в поведении между vertical-align: middle
и top
заключается в том, что первые перемещают элементы относительно базовой линии бокса (который размещается там, где необходимо для выполнения всех вертикальных выравниваний и, таким образом, он выглядит скорее непредсказуемым ) и второй относительно внешних границ линейного блока (который более ощутим).