Ben Ward

Tumblr 79626470

.

And please, let’s put the whole “display: table-cell will grant those abilities through CSS” to rest. Saying that is just saying “use tables for layout” with different words. Turning a bunch of divs or list items or whatever into table-role boxes is no better than just using table markup in the first place, and it’s arguably worse. Using element names other than table and td to create layout tables, and then claiming it’s not using tables for layout, borders on self-deception.

Eric Meyer

Eric quite reasonably points out that CSS needs a proper, robust layout mechanism, but off the back of the ‘just use tables’ crap last week, I disagree with this paragraph.

So, CSS has ‘table layout’ built in. display: table-cell;, and so forth. It was designed for and exists to render tables with CSS and not for laying out a page. That’s all fine; it’s a presentation directly related to the semantics of source order, which is how a table should be.

However, I am of the view that this discussion would be an awful lot simpler had the CSS table properties been named grid instead. display: grid, display: grid-cell and so on. Nomenclature to divorce the presentation from the semantics of data. I think there’re cases for arranging content into grids that aren’t tabular information.

To be clear: Laying out your page using display: table? Still wrong. Compromising source order for presentation. Bad. Etcetera.

Where I disagree is that the rendering behaviour afforded by display: table; should be synonymous with <table>. Creation of small grids in pages seems a perfectly reasonable form of presentation to me. That’s not to say a proper Advanced Layout module couldn’t do it better. And, unfortunately, of course, that’s not what any one of the recent display: table proponents is arguing for anyway. Via: meyerweb.com.

You can file issues or provide corrections: View Source on Github. Contributor credits.