What's the benefits of structuring my site with divs and apply the display:table property ( display:tr, display:tr).
None whatsoever in my opinion, except that you take away compatibility with older browsers. The idea that using DIVs with display: table-*
is somehow better than <table>
s is idiotic IMO, and the result of totally misguided hysteria against table elements. (Not attacking you @Nimo, just criticizing some people who have taken the "tables are evil" meme too far.)
Tables are supposed to be used to represent tabular data, not to be misused for layouting.
There are, however, certain abilities that tables have that are still very hard to simulate using pure CSS. You either need massive hacks and sometimes even JavaScript based workarounds to make those things work.
You should design your layouts in a way that don't rely on those abilities.
In some rare cases, you do need them. But then, it doesn't matter whether you use a proper <table><tr>
or a brain-dead <div style="display: table"><div style="display: table-row">
(which one is more semantic and better readable by the way?)
If you need display: table-*
for your layout, you have one of those rare cases at hand, or you have painted yourself in a corner anyway. Either way, with a <table>
, you at least get consistent browser support.