3 ms·
Why not use a <table>?
by nness 6y ago
Why not use a <table>?
- strenholme 6y agoFor layout?? Burn the heretic! [1] The real reason we don’t use tables for layout (and only for the occasional tabular data) is because a table layout doesn’t work really well on the screen of an iPhone or Android phone, especially when they are vertically aligned. So, the workaround is to use media selectors: Desktops, laptops, and tablets get a table layout; phones get a simpler one-column layout. I believe grid and flex layouts allow one to use a single design which will appropriately scale from a phone screen to an ultrawide monitor, but I use a two-layout or three-layout design for my web pages. [1] In the days when the CSS Zen Garden was new, all of the web design blogs and comments felt using <table> for anything at all was heresy, since abusing <table> resulted in really ugly and hard to maintain webpages during the dot-com days of the late 1990s. It would be an extended discussion whether it was OK to even use <table> for clearly tabular data.
- ath92 6y agoI think the don't-use-tables argument is from way before mobile devices were something web developers cared about. I recall it as being mostly about semantics, i.e. tables should only be used for tabular data, not setting up the layout of your entire page.
- nescioquid 6y agoThat's right. The argument was separating document structure from layout. Using a table for page layout makes the document structure incoherent.
- cutler 6y agoThe Jeffrey Zeldman era of CSS.
- goto11 6y agoI have never seen anyone arguing <table> was not OK for tabular data. I thought this was a myth on level of teenagers eating tide pods.
- strenholme 6y agoThose kinds of discussions have dropped off of the Internet over the last decade and a half, being hosted at places like the now defunct original Digg website. It was an era when one could said something really stupid online and it would become mercifully forgotten. What I have found is a 2014 blog posting where another web designer from that era says “the early anti-HTML table movement was strong. It managed to brainwash many generation of developers into thinking that any usage of table is evil. [...] I am one of those developers who avoided table layout, even for displaying tabular data.” Reference: https://colintoh.com/blog/display-table-anti-hero https://colintoh.com/blog/display-table-anti-hero
- goto11 6y agoThese days you actually can use <table> without compromising accessibility, by adding aria-annotations. So if you prefer this to CSS, go ahead. Most of the angst around <table> was before aria support, so using <table> purely for layout impacted accessibility, which meant it was not viable for most real-world scenarios. That said, if you need stuff like colspans for a layout, you are probably better of using grid.