Подчеркнуть блочный элемент разными размерами шрифта без прерывания

Я пытаюсь подчеркнуть элемент block, содержащий текст. Блок имеет атрибут font-size, а текст внутри block окружен элементом inline, который имеет другой атрибут font-size.

Есть ли способ обеспечить, чтобы линия, полученная из text-decoration="underline" внешнего блока, была прямой линией по всему элементу блока (без каких-либо «пробелов» - см. Прилагаемое изображение), которая не меняет свое положение с шрифтом - размер ?

Мой код:

<fo:block font-size="14pt" text-decoration="underline">
    Some text
    <fo:inline font-size="10pt"> text with a smaller font size </fo:inline>
    Another text
</fo:block>

Мой результат:

Проблема с невыделенным блоком с разными размерами шрифта

Заранее спасибо!


person M.E.    schedule 02.07.2013    source источник


Ответы (1)


У меня есть две версии движка XSL-FO от одного поставщика, и самая последняя версия отображает общее подчеркивание без пробелов, тогда как более старая версия отображает то, что вы видите, с помощью FOP. Так что, похоже, это зависит от реализации.

Но вы можете имитировать внешний вид того, что хотите, выборочно используя границу, а не полагаясь на реализацию:

  <block font-size="14pt">
    <inline border-after-width="1pt" border-after-style="solid">
Some text
<inline font-size="10pt"> text with a smaller font size </inline>
Another text
    </inline>
   </block>

Работает ли эта имитация в FOP или нет, я не знаю, поскольку я не использую FOP.

person G. Ken Holman    schedule 02.07.2013
comment
+1, но следует помнить, что в большинстве движков рендеринга нижняя граница немного ниже, чем было бы подчеркивание. - person bytebuster; 03.07.2013
comment
Большое спасибо! Действительно, нижняя граница ниже подчеркивания, но меня это устраивает. - person M.E.; 08.07.2013