2013-07-02 6 views
7

Ich versuche, ein block Element zu unterstreichen, das Text enthält. Der Block hat ein font-size Attribut und der Text innerhalb der block wird von einem inline Element umgeben, das ein anderes font-size Attribut hat.Unterstrichen Blockelement mit verschiedenen Schriftgrößen ohne eine unterbrochene Linie

Gibt es eine Möglichkeit sicherzustellen, dass die Linie text-decoration="underline" des äußeren Blocks eine gerade Linie über alle Blockelemente ist (ohne "Lücken" - siehe das beigefügte Bild), die ihre Position nicht ändert mit der Schriftgröße?

Mein Code:

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

Mein Ergebnis:

Problem with undelined block with different font sizes

Vielen Dank im Voraus!

Antwort

7

Ich habe zwei Versionen von XSL-FO-Engine von einem Lieferanten, und die aktuellste Version macht eine gemeinsame Unterstreichung ohne Lücken, während die ältere Version macht, was Sie mit FOP sehen. Es scheint also von der Implementierung abhängig zu sein.

Aber Sie können das Aussehen nachahmen, was Sie wollen, indem selektiv die Grenze mit, anstatt sich auf die Umsetzung:

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

, ob diese mimische Werke in FOP oder nicht, ich weiß nicht, wie ich don verwende kein FOP.

+0

+1, aber man sollte sich bewusst sein, dass in den meisten Rendering-Engines der untere Rand ein bisschen niedriger ist als eine Unterstreichung wäre. – bytebuster

+0

Vielen Dank! Tatsächlich ist die untere Grenze niedriger als die Unterstreichung, aber das ist für mich in Ordnung. –