|
From: | Carsten Dominik |
Subject: | Re: [Orgmode] Re: Aligning Columns in HTML Export Tables |
Date: | Mon, 25 Oct 2010 15:22:25 +0200 |
On Oct 25, 2010, at 3:13 PM, Christian Moe wrote:
On 10/25/10 11:08 AM, Carsten Dominik wrote:On Oct 25, 2010, at 10:51 AM, Christian Moe wrote:On 10/25/10 6:36 AM, Baoqiu Cui wrote: I am wondering if thereis any special reason to use "class" instead of "align". If not, can we change the elisp code to use "align"?I believe the "align" attribute is slated for obsoletion in HTML5, on the grounds that it's better handled by CSS. http://www.w3.org/TR/html5/obsolete.html It's a reason to go with "class" instead. Not a compelling one, perhaps. My only strong opinion on this is that I absolutely agree with the choice not to set the "style" attribute locally on each table cell.Hmm, butwe do now set the class in each cell. Is that any better? - CarstenIt's a subtle difference, and every way works, so I don't want to waste more of your time.#+begin_rantBut yes, I think it /is/ better, for the same reason Sebastian requested it: Setting class is the preferred way to make all cells of that class custom-styleable by changing a single line in the stylesheet.As I pointed out below, though, it's not the only way. CSS lets you do the same, nearly as easily, if "align" is used instead of "class" as Baoqiu Cui suggested; "class" is more future-proof (HTML5), "align" more compact (the default is already defined).(Heck, come to think of it, Sebastian could have monospaced the left- aligned column in his example even when Org set "style" on each cell, using a selector like:: td[style="text-align: left;"] { font-family: monospace; } -- but that, I think, would be perverse.)Over-use of the style attribute to set styles locally works against the purpose of CSS. The local style attribute should be used for exceptions; general rules should be handled at a higher level of the cascade.
I agree. But in the context of text alignment in tables, not all browsers support styles specified for entire columns. I think it is ridiculous to have to specify the alignment (or a class) for each field, but the browser realities force me.
OK, I will use class. I could make a special case for the docbook exporter......
Having to set /anything/ on each cell just to align a column is not optimal either, but since some browsers don't honor colgroups, it's the most robust way.
:-) Just what I think. OK, a class it is. - Carsten
td.right { font-family:monospace;text-align:right; }Using the "align" attribute as follows, <tr> <td align="right">1</td> <td align="left">bar</td> <td align="left">text</td> <tr> Sebastian could achieve the same with CSS like td[align="right"] { font-family: monospace;} In the same way one could even use CSS to override the alignment specified by the "align" attribute, if for whatever reason this seemed like a good idea... One slight advantage of the "align" attribute over "class" is that it doesn't require the default style to contain the extra verbiage Carsten mentioned:I have now in the default style: td, th { vertical-align: top; } th.right { text-align:right; } th.left { text-align:left; } th.center { text-align:center; } td.right { text-align:right; } td.left { text-align:left; } td.center { text-align:center; } Is there a way to write this more compactly?Yours, Christian- Carsten
- Carsten
[Prev in Thread] | Current Thread | [Next in Thread] |