#css
Вопрос:
Я устанавливаю логотип LaTeX с помощью CSS со следующими стилями:
.TeXE {
vertical-align: -0.5ex;
margin-left: -0.1667em;
margin-right: -0.125em;
}
.LaTeXA {
font-size: 0.85em;
vertical-align: 0.15em;
margin-left: -0.36em;
margin-right: -0.15em;
}
и тогда я смогу писать, например,
L<span class="LaTeXA">A</span>T<span class="TeXE">E</span>X
чтобы установить логотип. Проблема, с которой я сталкиваюсь, заключается в том, что я вижу чрезмерный интервал между строками всякий раз, когда печатается логотип. Увеличение межстрочного интервала этого не меняет (по крайней мере, не в Safari, но, вероятно, и не в других браузерах). Итак, вопрос в том, как я могу изменить свой CSS, чтобы скрыть эту дополнительную высоту/глубину?
Комментарии:
1. Сообщество здесь хорошее, действительно очень хорошее. Тем не менее, я не думаю, что кто-то может вам помочь без ЧЕТКОГО примера вашей проблемы. Программисты / дизайнеры не являются магами.
2. Вы всегда можете использовать
translate
вместо полей.3. …или
vertical-align
, так сказать, вместо этого. О, вот в чем твоя проблема…
Ответ №1:
vertical-align
регулирует пространство, занимаемое текстом, чтобы всегда было место для него на новом месте. Это не подходит для декоративных текстовых эффектов, которые должны занимать то же пространство, что и неокрашенный текст. Вместо этого используйте CSS translate
:
.TeXE {
transform: translate(0, 0.5ex);
display: inline-block;
margin-left: -0.1667em;
margin-right: -0.125em;
}
.LaTeXA {
font-size: 0.85em;
transform: translate(0, -0.15em);
display: inline-block;
margin-left: -0.36em;
margin-right: -0.15em;
}
<ol>
<li>Test</li>
<li>L<span class="LaTeXA">A</span>T<span class="TeXE">E</span>X</li>
<li>Test</li>
</ol>
CSS-преобразования (например translate
) перемещают элемент чисто визуально, не влияя на положение любого другого элемента.