Just to follow up on myself, I took some of the teitohtml XSL apart over the weekend, and rearranged it
so that <p> in TEI converts to an HTML <p> all the time; if there is an unacceptable block-level
object inside the <p> (a list, a quote etc), the <p> is termined, the block object
inserted, and the <p> restarted. This seems like a cleaner solution.
I hope this deals with the problematic CSS issue noted, and avoids the clumsy
use of <div class="p">
I don't expect this to be the end of the story, though, there are so many combinations
of elements one can come across in a TEI text.
Director (Research Support) of Academic IT Services
University of Oxford IT Services
13 Banbury Road, Oxford OX2 6NN. Phone +44 1865 283431