Если у меня есть <sup>
тег в многострочном <p>
теге, строка с надстрочным индексом на нем имеет больший межстрочный интервал над ним, чем другие строки, независимо от того, какую высоту строки я поставил <p>
.
Изменить для пояснения : я не имею в виду, что у меня много <p>
s, каждый из которых находится в одной строке. У меня есть сингл, в <p>
котором достаточно содержимого, чтобы вызвать перенос на несколько строк. Где-нибудь (где угодно) в тексте может стоять <sup>
или <sub>
. Это влияет на высоту строки для этой строки, добавляя дополнительный интервал выше / ниже. Если я установлю большую высоту строки, <p>
это не повлияет на проблему. Line-height увеличивается, но остается дополнительный интервал.
Как я могу сделать это согласованным - то есть все строки имеют одинаковый интервал, независимо от того, содержат они <sup>
или нет?
Ваши решения должны быть кроссбраузерными (IE 6+, FF, Safari, Opera, Chrome).
источник
vertical-align: bottom
(хотя это не так сильноtop
), а затемposition:relative;
с позитивомtop
.Хитрость заключается в том, чтобы установить
<sup>
line-height равным 0. @Scott сказал, что использует нормально, но это не всегда работает.Это означает, что вам не нужно изменять высоту строки окружающего текста, чтобы разместить надстрочный текст. Я тестировал это в IE7 + и других основных браузерах.
источник
line-height
атрибутами. Конечно, это может привести к пересечению с предыдущей линией, еслиline-height
, конечно, общее значение будет небольшим.line-height: 100%
в этом случае.line-height
я нашел возможные значения 0, 1, 1em и 100%. Все это определенно работает в Chrome и Firefox.У меня была такая же проблема, и ни один из приведенных ответов не работал. Но я нашел коммит git с исправлением, которое мне помогло:
источник
будь проще:
[ размер шрифта зависит от вашего индивидуального шрифта]
источник
источник
Я предпочитаю использовать
length
вертикальное выравнивание. Это выравнивает базовую линию элемента на заданной длине над базовой линией его родителя.источник
Причина, по которой
<sup>
тег влияет на интервал между двумя строками, связана с рядом факторов. Факторами являются: высота строки, размер верхнего индекса относительно обычного шрифта, высота строки верхнего индекса и, наконец, что не менее важно, то, что является нижней частью верхнего индекса, совпадающим с ... Если вы установите ... высоту строки если обычный текст находится в "туннельной полосе" (так я это называю) 135%, тогда обычный текст (100%) становится белым, с добавлением 35% большего количества белого. Для абзаца это выглядит так:Если вы затем не добавляете белый верхний индекс ... (то есть сохраняете высоту строки равной 0), верхний индекс имеет только ширину собственного текста ... если вы затем запрашиваете верхний индекс в процентах от обычного шрифта (для пример 70%), и вы выравниваете его по середине обычного текста (text-middle), вы можете устранить проблему и получить верхний индекс, который выглядит как верхний индекс. Вот:
источник
Я предпочитаю предлагаемое здесь решение , как показано на примере jsfiddle :
CSS:
HTML:
Прелесть этого решения в том, что вы можете настроить вертикальное расположение верхнего и нижнего индекса, чтобы избежать каких-либо столкновений с линией выше или ниже ... в приведенном выше примере просто увеличьте или уменьшите в
0.2em
соответствии с вашими требованиями.источник
Чтобы сделать все строки выше , чтобы они выглядели так же, как строка с надстрочным индексом, задайте больший размер
line-height
для всего абзаца.или любое другое значение, которое дает желаемый эффект.
Это может показаться странным, но вы так описали свои требования.
РЕДАКТИРОВАТЬ: чтобы все линии выглядели одинаково, когда только одному нужно больше вертикального пространства, чем другим , ВСЕ строки в абзаце должны быть выше.
Это, как я уже сказал, не может быть привлекательным решением. Может быть, что-то можно сделать с диапазоном, уменьшив только текст с нижним / верхним индексом , кроме этого, я не верю, что то, что вы хотите, может быть достигнуто. Но хотелось бы увидеть чужое решение.
EDIT2: кстати, я пробовал небольшой файл HTML, содержащий
И все строки одинаковой высоты в FF3.0.14 и Konqueror (я не могу говорить о других браузерах)
источник
Я использовал line-height: normal для надстрочного индекса, который у меня отлично работает в Safari, Chrome и Firefox, но насчет IE я не уверен.
источник
Специально используйте это в рассылке новостей -
источник
Мне нравится решение Milingu Kilu, но в том же духе я предпочитаю
источник
& sup1, & sup2 и т. д. могут помочь. это HTML-трюк для надстрочного текста
источник
Ответ отсюда , работает как в phantomjs, так и во встроенном в электронную почту HTML:
источник