どこをテーブルで作るべきか、divタグで作るべきかの境目というか、考え方が
微妙で困っています。
サイトレイアウト大まかな段組は<div>でできるだけ行うように、みたいにCSSデザインの勉強をしていると書いてあり、その意味は分かりますが、<div>タグで概観をレイアウトしても、結局は、divで定義したコンテンツBOXの中身だったりメニューの中身だったりは
テーブルで配置したほうが更新作業的にやりやすいし、テーブルほうがよいのでは?
みたいに、なってしまいます。
左に画像、右にコメント(文字列)などの関係のものが、以下に複数続いたりする場合、
どう考えてもテーブルのほうがよくない?って思うんですよね。
その場合でも無理やりdivタグでテーブル構造を作るもんなんですかね?
divタグだとコード量が少なくなるからSEO対策的に良いっていうのは理解できますが、
divタグはここまで作る、テーブルタグの使い分けが微妙です。
このときはテーブルにしないといけない。とかないんでしょうから
ある意味センスなんでしょうが。。。。
製作の効率と、コンテンツの管理の仕方を考えると
divタグとテーブルの使い方の境目が分からなくなってしまいます。
そのへんの考え方ノウハウを教えてください。
No.4ベストアンサー
- 回答日時:
No.1補足に対し
-----------------------
画像 | テキスト
-----------------------
画像 | テキスト
-----------------------
画像 | テキスト
-----------------------
画像 | テキスト
-----------------------
これで画像の大きさが同じならtableタグを使ってもいいですが
No.1補足のレイアウトなら、1.も2.もtableを使わないほうがずっと楽です。
画像は、ブロックの性質を持つインライン要素なので、画像もテキストもそれぞれブロック要素である<p></p>タグに入れ、適時左右にfloatさせれば良く、メモ帳などのテキストエディタで狙い通りのレイアウトがtableを使うより数倍速く作成できます。floatされる側のmargin指定しだいで表的なレイアウトにもワープロ的なレイアウトにも異なる回り込みを表現できます。初心者はfloat解除を忘れてレイアウトを崩すので、最初にfloat解除をマスターするのがコツと言えばコツです。
tableのtdタグ内のフォントが、親レイアウト構成要素の<div id="">やCSSで全体指定したものを引き継がないので、別途tableに同じフォント指定しなければ統一感のあるページにならないのもマイナス要因です。
ホームページビルダー(これは表でレイアウトする為に作られたようなソフトです)などのWYSWYGに頼って作成していると、この感覚は解らないと思います。これはEXCELをワープロ代わりに使う人が多いのと同じなのではないでしょうか。
>tableのtdタグ内のフォントが、親レイアウト構成要素の<div id="">やCSSで全体指定したものを引き継がない
なるほどですね。属性の継承のことも考えたり、テーブルにしたほうがよいかどうか
をその都度製作しようとする、内容(コンテンツ)によって考えることですね。
ありがとうございました。
No.3
- 回答日時:
HTML5完全切り替えには10年の猶予期間があり、2022年まではHTML4のままでも使える事になっています。
しかし、セキュリティ対策やマルチメディア対応などで、HTML5対応ブラウザに急速に切り替わるのではないかと予想しています。
ブラウザでは早々と今月リリースされたSafri5が対応しましたが、HTML5がもうすぐ現実のホームページに登場してきます。
HTML4ではCSSでIDやclassを指定して使っていたデザイン構成タグがHTML5では次のような明快なタグに置き換えられます。
<div id="header"></div> → <header></header>
<div id="nav"></div> → <nav></nav>
<div id="article"></div> → <article></article>
<div id="section"></div> → <section></section>
<div id="footer"></div> → <footer></footer>
tableについて引用すると『テーブルをレイアウト目的で使ってはいけません。歴史的に、ページレイアウトを制御する方法として、HTML 内にテーブルを誤用するウェブ制作者がいました。この利用方法は非準拠です。ドキュメントからテーブル・データを展開しようとするツールが、非常に紛らわしい結果を取得してしまうからです。特に、スクリーン・リーダーのようなアクセシビリティ・ツールのユーザーは、レイアウト目的のテーブルがあるページのナビゲートに多大な困難を伴うことになるでしょう。』という事になります。
今年いっぱいはHTML4で記述するしかありませんが、数ヶ月~数年でHTML5に移行せざるを得ない事を考えると<div id="">で作っておくべきと考えます。
参考URL:http://www.html5.jp/
No.2
- 回答日時:
それは、自分の制作し易さからの判断ですよね・・・
オーサリングソフトなどから学んでしまうとそんな風に捉えちゃいますね。
非公開やユーザー、UAの事を無視すれば、どんな仕様でも構いません。
ところが、
UAの事や為を考えながら制作すると(表現すると)
その意味を活かしたい場合には、適切なHTMLやマークアップが必要です。
HTMLレベルでは、
テーブル = 表です。
エクセルで作るような表を表す場合にテーブルを使います。
その違いだけです。
絶対ダメって事でもありません。作者の方針ですから。
HTMLから学べば、どちらが良いのか判断出来るでし、
制作レベルで簡単だとか難しいとかの話の問題ではありません。
HTMLレベルで適切か不適切かの問題です。
それと、読み込み順がtableではtr,tdの順に読んでしまうので、横に意味するように書かなくてはいけなくなります・・・
ちなみに、自分の場合、メニューなら ul.li で作ります。
No.1
- 回答日時:
表であればTable、レイアウトならDivです。
例えば、カレンダーは表の一種なのでTable。
料金表や商品早見表などもTable。
サイトの外見はCSSでコントロールすべし、レイアウトのためにTableを使用しない、
またTableを入れ子にしないというのが自分の基本の考え方です。
ですが、SEOは以下に検索結果にひっかかりやすくするか というものなので、
そんなものは気にしなくていい ということであれば
作業効率や印刷対応のためにテーブルでつくるものアリかなと思います。
(Floatを多用した長いページは印刷時にくずれやすいです。)
この回答への補足
回答を頂いたみなさん、ありがとうございます。
自分が聞きたいのは、HTML4/5とかの仕様とかそういうのじゃなく、
実際の製作における具体的なことです。
>表であればTable、レイアウトならDivです。
>例えば、カレンダーは表の一種なのでTable。
>料金表や商品早見表などもTable。
確かに、上記のようなものであれば(料金表や、商品一覧など)
は明らかにテーブルにすべきでしょう、
てのは分かります。それなら自分もテーブルにしますよ。
しかし自分が聞きたいのは、
1.
-----------------------
画像 | テキスト | ←このような配置
-----------------------
2.
-----------------------
画像 | コメント |
-----------------------
|
なんらかのコメント |
|
-----------------------
コメント | 画像 |
-----------------------
このような画像とコメントを配置をするWEBページ(レイアウト)を
させたい場合、例え、WEBページの見た目上の行が1行だったとしても、
複数行あったとしてもこれは、表じゃないからレイアウトにはテーブルを
使うべきじゃない。ということですか?
ちなみに、上の例で画像やテキストの周りに枠線があるとかないとかは
関係なく、配置することに対して、テーブルを使うべきか、divを使うべきかという
質問です。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTMLのdlとul どちらが正しいと思いますか 3 2023/02/23 11:20
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- HTML・CSS CSS の疑問です 1 2023/02/15 18:13
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
掲示板を作成しておりアップロ...
-
htmlの文字が縦書きになる
-
HTML属性での「""」 「''」違い
-
【ヒトの神秘】美男美女から何...
-
リストマーカーをボックス内に...
-
ボタンをセル内一杯に表示させ...
-
<div id="container">の使いか...
-
<table>の高さ固定。情報増加時...
-
質問1.
-
htmlのolやulなどlistにtitleや...
-
idの中のid指定
-
サイトにjQueryが使用されてい...
-
html/cssの、navを2段にする...
-
リンクをつけた画像をクリック...
-
個別にリンクの色を変える方法
-
border-style:solidで文字がずれる
-
<h1>、<h2>と<p><div>の行間を...
-
widthやheightの数値に単位(px...
-
submit buttonの違い
-
インラインフレーム内の表示位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
掲示板を作成しておりアップロ...
-
wordpressでキャプション内で改...
-
ASP.NETでの縦・横スク...
-
NN4.78が途中までしか読...
-
どこをテーブルで作るべきか、d...
-
htmlの文字が縦書きになる
-
【ヒトの神秘】美男美女から何...
-
htmlのolやulなどlistにtitleや...
-
<h1>、<h2>と<p><div>の行間を...
-
HTML属性での「""」 「''」違い
-
超音波で洗脳。
-
widthやheightの数値に単位(px...
-
ボタンをセル内一杯に表示させ...
-
div要素が重なってします
-
リストマーカーをボックス内に...
-
質問1.
-
<div id="container">の使いか...
-
リンクを知らせる手のマークが...
-
画像イメージの上下左右、欲し...
-
複数のボタンを等間隔に、かつ...
おすすめ情報