Subject: [xsl] Re: css or xsl for increasing size of first letter in chapter? From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Sat, 3 Aug 2002 23:45:19 -0700 (PDT) |
--- Phillip Rhodes <spamsucks at rhoderunner dot com> wrote: > Hi everyone. > I am trying to increase the size of the very first letter for each > chapter in an xhtml document. I have used the css pseudo class > "first-letter" to do it, but it selects all the p elements in a > chapter, not just the first. > > p:first-letter { > font-size: 16pt; > } > > I could use xsl to make the first child p of the chapter a special > class of p like <p class="firstsentence"> > > Sort of like > p.firstsentence:first-letter > > But not sure if this is the way to go...., any handy XSL tricks for > this? > Thanks! > > <html> > <body> > <chapter> > <p>This is chapter 1</p> > <p>another sentence</p> > </chapter> > <chapter> > <p>This is chapter 2</p> > </chapter> > </body> > </html> Hi Philip, The following transformation does it: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="chapter/p[1]//text()[1]"> <font size="+2"> <xsl:value-of select="substring(., 1, 1)"/> </font> <xsl:value-of select="substring(., 2)"/> </xsl:template> </xsl:stylesheet> It is a customisation of the identity rule, adding a specific rule for the first text node within the first "p" in a "chapter". The text is split into two -- the first character is wrapped within an appropriate html element ("font" in this case), and the rest of the text is simply copied. With your source xml: <html> <body> <chapter> <p>This is chapter 1</p> <p>another sentence</p> </chapter> <chapter> <p>This is chapter 2</p> </chapter> </body> </html> the result of applying this transformation is: <html> <body> <chapter> <p><font size="+2">T</font>his is chapter 1 </p> <p>another sentence</p> </chapter> <chapter> <p><font size="+2">T</font>his is chapter 2 </p> </chapter> </body> </html> and this is displayed by a browser with the first characters of any chapter visibly bigger. Hope this helped. ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL __________________________________________________ Do You Yahoo!? Yahoo! Health - Feel better, live better http://health.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] css or xsl for increasing siz, Phillip Rhodes | Thread | RE: [xsl] Re: css or xsl for increa, Michael Leditschke |
RE: [xsl] Generating XSL files Dyna, Conal Tuohy | Date | [xsl] Multiple instances of the sam, John Aschenbrenner |
Month |