Некоторые проблемы с этим подходом:
От align block elements on top when using line-height:
Высота строки всегда добавляется выше и ниже каждого символа. Так что если ваш font-size
12px и у вас есть line-height
из 18px, вы получите 3px выше и 3px под каждой «линией». Каждое из этих пространств 3px называется «полуприводным»
Решение должно относиться к каждому элементу относительно, а затем применять отрицательный запас, но мы не можем сделать это здесь, потому что каждая строка не является собственный элемент, в соответствии с:
есть ли способ, без упаковки каждой строки в DIV (или промежуток)
Если вы действительно были устойчивы к модификации разметки, вот/CSS работы JavaScript вокруг. Мы не можем выравнивать вершину, когда у нас есть «полупривод» над текстом. Вместо этого нам нужно избавиться от интервала line-height
сверху и снизу и создать собственное расстояние прямо на дне. Откуда мы знаем, где находится нижняя часть каждой строки? Ну, мы можем использовать элемент <br/>
, но мы can't style a carriage return.
Таким образом, мы будем использовать JavaScript, чтобы получить что-то, что можем стиль, а затем добавить отступы образом:
JavaScript:
$('br').before('<div class="spacer"></div>');
CSS:
.spacer {
height: 24px;
display: inline-block;
}
Который должен выглядеть следующим образом:
** Примечание: с inline-block
DIV, вы должны установить высоту, что вы хотите для line-height
и вертикального выравнивания текста в DIV top
. Вы также можете использовать regular div with a negative margin-top
, чтобы съесть лишнее пространство, которое требуется между абзацами. *
Можете ли вы быть более конкретным из того, что вы пытаетесь достичь? jsfiddle.net может помочь вам в этом! – Dieterg
Я думаю, что он означает, что 'line-height' добавляет больше пространства над строками текста, а не ниже (вы можете видеть это, когда вы выбираете содержимое). Добавлен jsfiddle. – Dunno
Линия-высота всегда добавляется выше и ниже каждого символа. Так что если ваш размер шрифта составляет 12 пикселей, а у вас есть высота строки 18 пикселей, вы получите 3px выше и 3px под каждой «линией». Каждое из этих пространств 3px называется «наполовину» – KyleMit