[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] Docbook website XSL question
In my own Website customization, I found it necessary to add support for CSS classes and id attributes. I may been going about it wrong (corrections welcome), but FWIW: It looks like the docbook.xsl strategy is to apply the appropriate XML element name to the class attribute, in this form: <xsl:template match="abstract"> <div class="{name(.)}"> This example generates the HTML code <div class="abstract">, allowing the CSS author to write rules for the div.abstract selector. The problem is, sometimes the resulting classes are not granular enough for effective CSS formatting. For example: <div class="section"> applies to nearly all the content in my pages. I wanted to provide more descriptive classes at this level than the XML element name. For example, <div class="albums"> and <div class="production"> allows my CSS to format div.albums differently from div.production. The other limitation of this model is that CSS class names are limited to the names of elements. I tried to use the role attribute to work around these problems, but found that I could generate classes only for a small group of elements (controlled by 'use.role' params). So much of my customization was to add role support to a bunch of templates, and that's my first suggestion: more support for HTML classes based on the role attribute. This provides more granularity, and makes the available class names extensible without modifying the xsl. The second CSS problem I had was using XML ids. They seem to generate <a name> anchors, but not id attributes as far as I can tell. For example: <para id="test"> generates <p><a name="test">, not <p id="test"> , which would be useful for CSS. I recognize that ids have other purposes in XML than in HTML, so I'm not sure how they should be mapped. I simply note that ids seem to be unavailable for the CSS designer. The last point I would make is more of a question: I wonder if full CSS support may be beyond the reasonable scope of docbook.xsl. For example, I don't know how you would support using any attribute as a selector, as CSS2 allows: img[src="logo.gif"] It might be useful to understand how far docbook.xsl can and can't take us with CSS. Bob Stayton wrote: > I'm not sure I understand the question. The current website stylesheets > make use of the DocBook XSL templates, and they output class attributes in > the HTML. Those class attributes are suitable for use with CSS. Is the > question whether such class attributes exist, or whether there should be > more of them? > > Bob Stayton > Sagehill Enterprises > DocBook Consulting > bobs@sagehill.net > > > ----- Original Message ----- > From: "Marcin Zalewski" <zalewm@rpi.edu> > To: <docbook-apps@lists.oasis-open.org> > Sent: Friday, July 23, 2004 8:01 AM > Subject: [docbook-apps] Docbook website XSL question > > > >>Hi, >> >>I am trying to generate my webpage using website XSL. After lots of >>trials I finally got it to work and produce valid XHTML. >> >>However, there are only two ways to produce a webpage using the default >>distribution: text only or tabular. I do not want to use tables for the >>layout of my page and I want to control all the styling through css. I >>wrote an ugly customization css that produces html free of any styling >>elements. >> >>I was wandering if there is a stylesheet available somewhere that >>produces a css-ready layout. What I would expect is an html document >>where all elements are named (through class or id) and layered for easy >>style with css. >> >>Does anyone know of an existing stylesheet that does what I need? >> >>Thanks, >> >>Marcin >> >> > > > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]