初歩的な質問ですみませんdisplay:table-cellを使っている要素内(div)にtableを使っても良いのでしょうか?テーブルレイアウトと似たようにテーブルをレイアウト目的で使ってるような気がして違和感を感じて調べたのですが答えが見つかりませんこれってどうなんでしょう?
まずテーブルレイアウトがなぜダメなのかというと、HTMLのtable要素には「表」という意味があるのに、表ではないところでtable要素を使っているから
一方、CSSのdisplay:table-cellなどは「表」という意味がない見た目は表になるけど、それは意味が伴っているわけではなく、見た目が表になるだけ
このようにCSSは見た目を与えるだけで意味論をもたないので、期待通りの見た目になるなら何してもいいです
お礼が遅れて申し訳ございませんでした、ご回答ありがとうございます少し疑問に感じたのですが期待通りの見た目になるなら何をしてもいいとありますが上記の(table-cell内にtable)はtext-indent:-9999pxで画像置き換えなどseo的に不利と噂されるグレーな手法に属したりはしないのでしょうか?
text-indent:-9999pxがなぜseo的によくないかというと、HTMLに書かれているテキストと実際にユーザーが見る画像の内容が違っている場合があるからです正しく(テキストと画像の内容を一致させて)使えば大して問題ないという人もいます
同様に考えると、レイアウトを整える目的であって、検索エンジンをだます目的でないのならそんなに神経質にならなくてもいいと思う
みんなの回答 1 件
まずテーブルレイアウトがなぜダメなのかというと、HTMLのtable要素には「表」という意味があるのに、表ではないところでtable要素を使っているから
一方、CSSのdisplay:table-cellなどは「表」という意味がない
見た目は表になるけど、それは意味が伴っているわけではなく、見た目が表になるだけ
このようにCSSは見た目を与えるだけで意味論をもたないので、期待通りの見た目になるなら何してもいいです
関連するトピックス