I had already long-since abandoned table-based layout as an
unmaintainable mess by the time jQuery came about. Certainly
manipulating the page at runtime will be easier if you have semantically
useful markup rather than presentational markup. That way you can vary
the presentation by just flipping some CSS settings rather than screwing
with the DOM (which is harder, more error prone, takes more code, and
makes the browser work harder which results in slower pages).
Really. Stop trying to hold onto tables. You're only harming
yourself... and your clients... and your visitors. :-)
--Larry Garfield
On 5/2/11 6:47 PM, Warren Vail wrote:
Larry,
I Did a little more research that generated a new question, would love
to get your input.
I did find several sites designed for mobile devices that are being used
successfully with tables so that bit may have been speculation, but I
did discover, I think, two modules within Drupal that might not work
well with Tabled layout, jQuery and RDF. jQuery alone is probably worth
my learning CSS layout, just to be able to crank out all the possible
features there now and in the future. RDF, unless I miss-read something,
seems to be designed to make the search engine job easier by providing a
mechanism for you to tell the search engine the entire story of a page,
something normal text scanning could (and does) occasionally miss. My
only reservation about RDF is the potential for abuse, but then I
probably will find they’ve fixed that when I read a bit more on the subject.
Is it true that jQuery has problems with tabled layout?
/*/Warren Vail/*/
------------------------------------------------------------------------
*From:*[email protected]
[mailto:[email protected]] *On Behalf Of *Larry Garfield
*Sent:* Sunday, May 01, 2011 10:45 PM
*To:* [email protected]
*Subject:* Re: [development] Tables in Themes in Drupal 7
Table-based markup:
1) Is worse for search engines. Search engines handle semantic markup
better, because they can extract useful information about the page from
the markup. Tables confuse them and they cannot rank the data on the
page as well.
2) Is more verbose. While your eyes may have grown accustomed to it,
that makes the page load more slowly. With the proliferation of the
wireless web (back to dialup speeds we go!), that is a significant
problem. The usual example I use here is Slashdot, which switched from
table-based to pure-CSS layout back in the early '00s and saved multiple
*gigabytes* of data transfer per month. That translates into $$$, as
well as a faster user experience.
3) Is harder to maintain. Really. Even in a CMS.
4) Is not accessible. By "accessible" I mean "makes sense to something
other than a pair of human eyeballs". Screen readers, search engines,
assitive technology (for people that are partially disabled), etc. all
work better with intelligent, semantic markup than with purely visual
markup.
5) Is harder to build. Really. Especially in a dynamic system like
Drupal, table-based layout makes it harder to build a flexible page.
6) Doesn't scale down to mobile browsers. Mobile browsers will be the
majority of web traffic within 2 years or so by some estimates. In some
parts of the world it already is. Good semantic designs scale down to 4"
screens far more easily than tables. I'd go as far as saying that
"adaptive design" (where the layout changes depending on the size of the
screen automatically) is simply impossible with tables.
7) Doesn't offer anywhere near the expressive power of CSS. If you're
trying to get a visual effect fancier than three columns with fixed
rectangular color regions, you need to use CSS for styling. Tables just
can't do that.
Not to put too fine a point on it, but if all you're thinking about is
"a good looking theme", use Photoshop, not the web. Building a web page
is about far far far more than simply painting a picture, and if you
want to do more than paint a picture that has columns in it you need to
use CSS-based layout.
"Personal preference" is not even on the table (no pun intended) for why
CSS-based design is better than table-based. It's not a "prejudice of
the lazy". It's a prejudice for using the right tools for the job they
were intended for, and using them properly. That's not a subjective
statement, nor one simply based on which one learned first.
Yes, it's time for you to learn CSS. Fortunately, it's much easier than
it used to be since modern browsers finally support CSS properly (now
that IE 6 is a virtually non-existent player in most markets).
--Larry Garfield
On 05/02/2011 12:07 AM, Warren Vail wrote:
I was just getting ready to tackle my first theme in Drupal 7, and is my
practice, looking through the themes to find for one to hack into being
mine, when I found that none of them used tables for layout. Now I have
heard many people voice the opinion that tabled layouts (which I’ve been
quite successful with) are bad, and CSS (which I am less prepared to
deal with) are good. And in my ages of experience I have, up until now,
assumed that the expressed choice between good and bad was based on (as
it often is) what people had learned vs what they had not, and did not
want to have to bother to learn, so I said nothing until now
Now I see that Drupal 7 (a product I have some respect for) seems to
have none, in those that I have looked into, at least. Did what I had
perceived to be merely a prejudice of the lazy make it’s way all the way
into the D7 Platform, or is there some legitimate reason for abandoning
tabled layouts that I have missed (must I finally buckle down to my own
laziness and tackle CSS to that depth)?
Why are Tables BAD and CSS GOOD (keep in mind, I’m after a good looking
theme, and not good looking code, necessarily, since none of my end
users will ever look at the code). I am looking for some reason other
than good looking code (or someone’s vision of correctness) to get
behind CSS for my themes, and believe me “being easier” won’t convince
me much either. I’m guessing there must be some other good reason I’ve
missed.
What would that be?
/*/Warren Vail/*/