Для чего блоку .footer-copyright делаем font-size: 0 ?
Как так получается, что при задании свойства vertical-align: top инлайн-блоку .logo-htmlacademy выравнивается .footer-copyright span по центру .logo-htmlacademy ?
Ведь без vertical-align: top весь span падает вниз:
font-size обнуляется, чтобы убрать отступы между элементами inline-block, которые есть по умолчанию и зависят от размера шрифта. (Курс «Сетки», задание 32 - inline-block и пробелы в коде).
Элементы с vertical-align выравниваются внутри родителя друг относительно друга, поэтому у каждого должно быть явно задано свойство vertical-align.
То есть, если внутри родителя скажем 3 инлайн-блока , а свойство vertical-align задано только двум блокам, то схема уже не работает ? Не будет выравнивания по вертикали ?
Не самое очевидное поведение на первый взгляд, но становится понятно, если начертить линию выравнивания. Здесь задано vertical-align:middle для 2 и 4 блока.
Видно, что блоки 2 и 4 центруются относительно друг друга, а вот блоки 1, 3 и 5 с выравниванием по умолчанию baseline подстроились так, чтобы их базовая линия текста совпадала с линией выравнивания middle блоков 2 и 4. То есть, задав явно vertical-align для 2 и 4 блока, мы переопределили основную линию, по которой выстраиваются все элементы.
Поэтому, чтобы ожидать явного выравнивания блоков в линию, свойство лучше задавать всем элементам, и они выстроятся одинаково, например теперь vertical-align: middle задано для всех
Если в одном из блоков есть строки, а в другом нет, (например, это img), то выравнивание по умолчанию идет по нижней границе самого высокого блока. Он как бы «формирует» строку своей высотой. Пример есть в разделе «Оформление текста», задание 9 «свойство vertical-align».
Насчёт вашего примера.
Пока выравнивание не задано явно, оно идет по базовой линии картинки (больший по высоте блок).
Vertical-align:top для блока с картинкой переопределяет линию выравнивания по верхнему краю, и «Разработчик» теперь тоже выравнивается по верху. Чтобы сделать его по центру, добавлен отступ сверху 25px.
По сути, когда мы уже задали блоку с картинкой выравнивание по верху, «Разработчику» можно задать хоть «middle», хоть «baseline», хоть «top» — это почти не влияет на результат. Можно было бы вообще убрать выравнивание для блока «Разработчик» — он всё равно подстроится под блок с картинкой с vertical-align:top.
Не знаю, почему так сделано, но могу предположить.
Во первых, иногда лучше явно задавать некоторые свойства.
Блок с картинкой сформировал высоту строки и базовую линию сверху. Нижняя граница этой строки — это нижняя граница блока с картинкой. Если блоку «Разработчик» задать выравнивание «bottom», он убежит вниз.
Во-вторых, свойство vertical-align: middle чуть-чуть центрует текст внутри собственной строки.
Например, если font-size: 14px и line-height: 14px — эффекта не будет, ведь размер шрифта равен высоте строки. Но при font-size: 14px и line-height: 26px различия будут