2013-07-02 19 views
7

Próbuję podkreślić element block zawierający tekst. Blok ma atrybut font-size, a tekst wewnątrz block jest otoczony elementem inline, który ma inny atrybut font-size.Podkreślanie elementu blokowego o różnych rozmiarach czcionki bez przerywanej linii

Czy istnieje sposób na zapewnienie, że linia wynikająca z text-decoration="underline" zewnętrznego bloku jest linią prostą nad całym elementem bloku (bez żadnych "luk" - patrz załączony rysunek), która nie zmienia swojej pozycji z wielkością czcionki?

Mój kod:

<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> 

mój wynik:

Problem with undelined block with different font sizes

Z góry dzięki!

Odpowiedz

7

Mam dwie wersje silnika XSL-FO od jednego dostawcy, a najnowsza wersja renderuje wspólne podkreślenie bez przerw, podczas gdy starsza wersja renderuje to, co widzisz z FOP. Wydaje się, że zależy to od implementacji.

Ale można naśladować wygląd, co chcesz przez selektywnie przy użyciu granicę zamiast polegać na realizacji:

<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> 

czy ten mimicznych prac w FOP, czy nie, nie wiem, jak I don używaj FOP.

+0

+1, ale należy mieć świadomość, że w większości silników renderujących dolna ramka jest nieco niższa niż podkreślenie. – bytebuster

+0

Wielkie dzięki! Rzeczywiście, dolna granica jest mniejsza niż podkreślenie, ale dla mnie jest to w porządku. –