From: Alan G I. <ai...@am...> - 2008-12-30 23:59:17
|
The `table` directive sets the border attribute. This seems a bug? (I.e., why is this not stylesheet info?) Right now one must override at the td level. Also, the `table` directive does not accept the `stub-columns` option. Why? Thanks, Alan Isaac PS A separate styling question... Can I get different text alignment for different columns of a table (without using stubs)? |
From: David G. <go...@py...> - 2008-12-31 00:29:32
|
On Tue, Dec 30, 2008 at 18:59, Alan G Isaac <ai...@am...> wrote: > The `table` directive sets the border attribute. Nothing to do with the "table" directive. Normal tables do too. It's the HTML writer that does it for all table elements. > This seems a bug? > (I.e., why is this not stylesheet info?) > Right now one must override at the td level. Not a bug. I don't remember exactly, but from some examination now, it seems probable that it was expedient. I tried removing border="1"; without it, tables have no borders at all. I cannot figure out the combination of CSS styles necessary to duplicate the effect of border="1". If you can, please let me know, and we can remove border="1" from the HTML writer. > Also, the `table` directive does not accept > the `stub-columns` option. Why? Because it wasn't implemented. The csv-table and list-table directives were implemented later, and their features were not back-ported. > PS A separate styling question... > Can I get different text alignment > for different columns of a table > (without using stubs)? Not currently, no. We'd need a mechanism for associating a class attribute with a column (a colspec element, equivalent to an HTML col element). -- David Goodger <http://python.net/~goodger> |
From: <tre...@gm...> - 2008-12-31 03:32:40
|
"David Goodger" <go...@py...> writes: > On Tue, Dec 30, 2008 at 18:59, Alan G Isaac <ai...@am...> wrote: >> The `table` directive sets the border attribute. > > Nothing to do with the "table" directive. Normal tables do too. It's > the HTML writer that does it for all table elements. > >> This seems a bug? (I.e., why is this not stylesheet info?) Right >> now one must override at the td level. > > Not a bug. I don't remember exactly, but from some examination now, it > seems probable that it was expedient. > > I tried removing border="1"; without it, tables have no borders at > all. I cannot figure out the combination of CSS styles necessary to > duplicate the effect of border="1". If you can, please let me know, > and we can remove border="1" from the HTML writer. I imagine it would be table { border = 1 } However I think border=1 might be an important exception because it tells non-CSS browsers "yes, this really IS a table". They tend to mistrust TABLE without BORDER=1 because that style is/was abused a lot for alignment. >> PS A separate styling question... Can I get different text alignment >> for different columns of a table (without using stubs)? In CSS2, I think you can refer to the Nth child of an element, or at least the first one. So you would say something like (untested): table.tr.td[3] { text-align: number } PS: does the HTML writer add row attributes for zebra striping? It doesn't look like it. |
From: David G. <go...@py...> - 2008-12-31 04:05:07
|
On Tue, Dec 30, 2008 at 22:34, Trent W. Buck <tre...@gm...> wrote: > "David Goodger" <go...@py...> writes: >> I tried removing border="1"; without it, tables have no borders at >> all. I cannot figure out the combination of CSS styles necessary to >> duplicate the effect of border="1". If you can, please let me know, >> and we can remove border="1" from the HTML writer. > > I imagine it would be > > table { border = 1 } That doesn't do anything in Firefox 3 or Safari 3. > However I think border=1 might be an important exception because it > tells non-CSS browsers "yes, this really IS a table". They tend to > mistrust TABLE without BORDER=1 because that style is/was abused a lot > for alignment. That makes as much sense as HTML/CSS in general. ;-) > PS: does the HTML writer add row attributes for zebra striping? It > doesn't look like it. No, it doesn't. -- David Goodger <http://python.net/~goodger> |
From: Alan G I. <ai...@am...> - 2008-12-31 21:57:27
|
>>> A separate styling question... Can I get different text alignment >>> for different columns of a table (without using stubs)? On 12/30/2008 10:34 PM Trent W. Buck apparently wrote: > In CSS2, I think you can refer to the Nth child of an element, or at > least the first one. So you would say something like (untested): > > table.tr.td[3] { text-align: number } That was a good hint. I used the :first-child pseudo-class and it meets my needs. Alan Isaac |
From: Alan G I. <ai...@am...> - 2008-12-31 03:18:05
|
On 12/30/2008 7:29 PM David Goodger apparently wrote: > I tried removing border="1"; without it, tables have no borders at > all. I cannot figure out the combination of CSS styles necessary to > duplicate the effect of border="1". If you can, please let me know, > and we can remove border="1" from the HTML writer. To duplicate:: table.dup { border: 1px solid black; } table.dup td { border: 1px solid black; } table.dup th { border: 1px solid black; } But it's nicer to collapse the border:: table.bordered { border-collapse: collapse; } table.bordered td { border: 1px solid black; } table.bordered th { border: 1px solid black; } hth, Alan Isaac |
From: <tre...@gm...> - 2008-12-31 03:40:32
|
"David Goodger" <go...@py...> writes: > On Tue, Dec 30, 2008 at 18:59, Alan G Isaac <ai...@am...> wrote: >> The `table` directive sets the border attribute. > > Nothing to do with the "table" directive. Normal tables do too. It's > the HTML writer that does it for all table elements. > >> This seems a bug? >> (I.e., why is this not stylesheet info?) >> Right now one must override at the td level. > > Not a bug. I don't remember exactly, but from some examination now, it > seems probable that it was expedient. I tracked this down to r1608 r1608 | goodger | 2003-07-29 13:45:22 +1000 (Tue, 29 Jul 2003) | 2 lines Improved table grid/border handling (prompted by report from Bob Marshall). Index: docutils/writers/html4css1.py =================================================================== --- docutils/writers/html4css1.py (revision 1607) +++ docutils/writers/html4css1.py (revision 1608) @@ -1061,8 +1061,9 @@ def visit_table(self, node): self.body.append( - self.starttag(node, 'table', CLASS="table", - frame='border', rules='all')) + # "border=None" is a boolean attribute; + # it means "standard border", not "no border": + self.starttag(node, 'table', CLASS="table", border=None)) def depart_table(self, node): self.body.append('</table>\n') and r2122 r2122 | wiemann | 2004-05-24 02:09:12 +1000 (Mon, 24 May 2004) | 2 lines XHTML validity fix Index: docutils/writers/html4css1.py =================================================================== --- docutils/writers/html4css1.py (revision 2121) +++ docutils/writers/html4css1.py (revision 2122) @@ -418,7 +418,6 @@ self.body.append(self.starttag(node, 'table', CLASS='citation', frame="void", rules="none")) self.body.append('<colgroup><col class="label" /><col /></colgroup>\n' - '<col />\n' '<tbody valign="top">\n' '<tr>') self.footnote_backrefs(node) @@ -1143,7 +1142,7 @@ self.body.append( # "border=None" is a boolean attribute; # it means "standard border", not "no border": - self.starttag(node, 'table', CLASS="table", border=None)) + self.starttag(node, 'table', CLASS="table", border="1")) def depart_table(self, node): self.body.append('</table>\n') |
From: David G. <go...@py...> - 2008-12-31 04:19:17
|
On Tue, Dec 30, 2008 at 22:17, Alan G Isaac <ai...@am...> wrote: > On 12/30/2008 7:29 PM David Goodger apparently wrote: >> I tried removing border="1"; without it, tables have no borders at >> all. I cannot figure out the combination of CSS styles necessary to >> duplicate the effect of border="1". If you can, please let me know, >> and we can remove border="1" from the HTML writer. > > To duplicate:: > > table.dup { > border: 1px solid black; } > table.dup td > { border: 1px solid black; } > table.dup th { > border: 1px solid black; } Not quite. But with that pointer I could get much closer with this: table.dup { border: 1px outset ; } table.dup td, table.dup th { border: 1px inset ; padding: 0.08em 0.5em; } That looks fine in Firefox 3, but the borders are very light in Safari 3. Specifying "black" gives solid black lines in Safari, regardless of the outset/inset values (Firefox is OK). It seems that <table border="1"> does a lot more than just set border values. It also sets padding values, at least. It may do more that we don't see. Is there a reference for what border="1" actually does in the various browsers? At this point I am reluctant to make any changes. The status quo can remain, and anybody who cares can just use stylesheets. Does border="1" prevent arbitrary styles? I can live with "but it makes styling harder". > But it's nicer to collapse the border:: But that's something that can already be done in stylesheets, right? -- David Goodger <http://python.net/~goodger> |
From: Alan G I. <ai...@am...> - 2008-12-31 16:05:54
|
On 12/30/2008 11:19 PM David Goodger apparently wrote: > At this point I am reluctant to make any changes. The status quo can > remain, and anybody who cares can just use stylesheets. Does > border="1" prevent arbitrary styles? I can live with "but it makes > styling harder". I have not found anything that is actually prevented. Alan added: >> But it's nicer to collapse the border:: On 12/30/2008 11:19 PM David Goodger apparently wrote: > But that's something that can already be done in stylesheets, right? Absolutely. But isn't docutils still young enough to switch to having a nice looking table as the default? Alan |
From: David G. <go...@py...> - 2008-12-31 16:37:31
|
> On 12/30/2008 11:19 PM David Goodger apparently wrote: >> But that's something that can already be done in stylesheets, right? On Wed, Dec 31, 2008 at 11:05, Alan G Isaac <ai...@am...> wrote: > Absolutely. > But isn't docutils still young enough to switch > to having a nice looking table as the default? Beauty is in the eye of the beholder. There is beauty in the Docutils default being the same as the browser default (IOW not imposing its aesthetic), and border="1" does that simply and elegantly. Imitating the default is definitely inelegant. Since the default can be overridden by stylesheets, I think the current behavior should not be changed. -- David Goodger <http://python.net/~goodger> |