• ベストアンサー

WEBサイトのデザインについて教えてください。

少し前から趣味でホームページを作成するようになり、今ではかなりホームページに興味を持つようになりました。今は飲食店でアルバイトをしているのですが、将来はWEBデザイナーになりたいと思っています。 無料で作れてテンプレートを使用し作成できるサイト作りに飽きてしまい、先日ドリームウィーバーを購入して勉強しています。HTML,CSSはある程度習得できたと思っています。 そこで質問なのですが、tableタグを使用してサイトをデザインしていくのはいけない(好ましくない)のでしょうか?とあるサイトを見てみると、「tableは表を表すタグなのでできる限り使用しない方がよい。CSSを用いてpositionを使用した方が好ましい」といった事が書かれていました。他にも「tableタグ内にtableタグを挿入するのはよくない。spamサイト(?)扱いにされてしまう事がありSEO対策も悪い。」といった事も聞いたことがあります。 今まで私はtableタグを使い、CSSのtext-align:center;を使用して配置していましたのでそのような記事を見てしまい「今まで間違ったことをしていたのだろうか」と思っています。しかし、綺麗に作られたサイトのソースを見たりしてもtableタグを使用しているサイトもあり、実際はどうなのだろうかと心配です。例えば<table>を使用していけないのか、 <table><tr><td> <table> <tr><td> </td></tr> </table> </td></tr></table> 上記のように(見にくくてすみません)table内にtableタグを使用してはいけないのか・・・。いろいろな情報がありすぎてどれが一般的に使用していいのかさっぱりです。 皆様はどのようにWEBデザインをなさっているのでしょうか。やはりtableを使用しないのでしょうか。 説明が長くなってしまいましたが、どなたかご教授していただけませんでしょうか。本気で目指していきたいと思っております。どのような意見でもかまいません。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.3

No1です。補足しておきます。 >例えばヤマダ電機のサイトのように、左側・中央・右側にブロックのように分けられているサイトでしたら Tableを使う以外に何か方法があるのでしょうか? とのことですが、スタイルシートを使って成型をするには、ブロックという考え方をします(具体的にいえば、例えばdivタグで囲んで、それに幅とか高さとかを指定たりします)。ヤマダ電機のサイトのソースを見てみてください。<div id="~~"></div>というようなものが数え切れないほどあるでしょう。 そこらへんのことも↓のサイトに書いてありますけどね。

参考URL:
http://www.stylish-style.com/index.html

その他の回答 (2)

  • rally
  • ベストアンサー率28% (32/111)
回答No.2

最近はtableタグでのレイアウトは見なくなりましたね。 「コンテンツ」と「デザインやレイアウト」は分けて実装しようということです。 コンテンツ=html デザインやレイアウト=スタイルシート 検索エンジンのロボットはhtmlをチェックしますので、 htmlにはコンテンツだけがある方が望ましいんです。 tableタグで出来ることは、スタイルシートでも可能ですよ。 ブログを見ればわかるかも知れません。 ほとんどがスタイルシート使ってますからね。

akihappy
質問者

お礼

rallyさんご回答ありがとうございます。 なるほど~。やはりtableは使用しないほうが好ましいのですね。勉強しなりました。CSSは難しいですけど覚えればさらに楽しくなると思うのでこれからさらに勉強してWEBデザイナーを目指していきたいと思います。

  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

>tableは表を表すタグなのでできる限り使用しない方がよい。 positionを用いるかどうかは別として、この考え方は正しいでしょう。 最近のサイト制作の考え方として、xHTML(HTML)には構造を、CSSではデザインを書くのが推奨されています(W3C云々の話は省略します)。これはSEO対策にも関わってきます。 tableを使って整形することは100%間違ったこととは言いませんが、先のことを考えると、多用しない方が良いと思います。 >table内にtableタグを使用してはいけないのか・・・ まぁ基本的には使わない方が良いですが、ウェブ標準なんて気にしない、見れればいい、というのなら別にかまわないと思います。 ただ、WEBデザイナーを目指すのであればやはりウェブ標準に準拠した作り方を覚えるべきでしょう。 とはいえそのウェブ標準に関しても色々一悶着あるんですけどね。とりあえずW3Cという団体が唱えているものに従っておけばよいと思います(http://www.mozilla.gr.jp/standards/links.html)。 ちなみに個人的意見ですが、CSSに慣れてしまうとtable使わない方が作成するのが楽だったりします。 あと、↓はお勧めサイトです。

参考URL:
http://www.stylish-style.com/index.html
akihappy
質問者

お礼

LOHAさん、回答していただきありがとうございます。 tableタグは使ってはいけないのですね・・・。少し残念です。 紹介していただいたサイトを拝見してみました。とてもいいです!ありがとうございます。熟読して早く覚えたいものです。 それともうひとつ質問させて頂いていいでしょうか。例えばヤマダ電機のサイトのように、左側・中央・右側にブロックのように分けられているサイトでしたらTableを使う以外に何か方法があるのでしょうか?これでtableを使わなかったらすごく縦長のサイトになってしまいませんか? お礼に質問を書かくことは大変失礼なことだとは思いますが、よろしくお願いいたします。

関連するQ&A

  • CSSでデザインしたWEB標準でサイト構築はどうやればよいのか

    tableタグを使わずCSSでデザインしたサイトが増えてきました。 ですがどうやって作るのかわかりません。 DreamWeaverMXで作成可能でしょうか?

    • ベストアンサー
    • HTML
  • htmlとcssのデザインについて

    Webサイトでデザインをする際に、cssを利用すると<table>タグ不要でテーブルデザインできるようです。個人的には色やフォントに限定してcssを適用しています。古いブラウザで見れないなどのデメリットがありますが、今後はcssでデザインをするのが一般的になるのでしょうか? 個人的にはcssで全てを作ると可読性が悪くなるような気がするのですが。。。

    • ベストアンサー
    • HTML
  • テーブルの角を丸くして、立体的に

    先日、IEでも閲覧可能で、 テーブルの線を細くするスタイルシートを このように教えて頂きました。 このスタイルシートから、 テーブルの角を丸くして、 立体的にする書き方を教えて頂けると とっても助かります。 ------------ <!DOCTYPE html> <html lang="ja"> <head> <style type="text/css"><!-- table.WebDesign{ border-collapse: collapse; width: 400px;} table.WebDesign,table.WebDesign td{border:solid 1px #1C79C6;} --></style> </head> <body><div> <table class="WebDesign"> <tr><td>Webデザイン</td><td>Webデザイン</td></tr> <tr><td>Webデザイン</td><td>Webデザイン</td></tr> </table> </div></body></html>

    • ベストアンサー
    • CSS
  • IEで細い線

    こんにちはー。 cssでテーブルの線を細くするために こんな感じでやってみました。 クロームでは出来たのですが IE(バージョン9)で閲覧すると、線そのものが表示されません IEでも表示させるには、どーすればいいですか? ―――― <html> <head> <style type="text/css"> table[summary="WebDesign"]{ border-collapse: collapse; width: 400px; } table[summary="WebDesign"],table[summary="WebDesign"] td{ border:solid 1px #1C79C6; } </style> </head> <body> <table summary="WebDesign"><!-- summaryは必須 TBODY+ -->  <tbody><!-- tbodyはひとつ以上必須 -->   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>  </tbody> </table> </body> </html>

    • ベストアンサー
    • CSS
  • 中のテーブルにまで及ばせないようにする

    テーブルの中にテーブルがあり、 外のテーブルには .table tr .table td でclassを設定しており、 その影響を中のテーブルにまで及ばせないようにすることは可能でしょうか? <table class=css> <tr> <td> <table> <tr> <td> ここに外側のcssの影響を及ばせたくない </td> </tr> </table> </td> </tr> </table>

    • ベストアンサー
    • CSS
  • DHTMLでテーブルの行の表示・非表示を切り替える。

    こんにちは。 WEBアプリケーションのモックアップを作成しています。 自身はJava屋ですが、DHTMLに明るくないため、苦戦しています。 同一画面内のリンクがクリックされた場合に・・・ テーブルの行の表示、非表示を切り替えたいのです。 <!-- ========================= --> <!-- テーブル1 --> <table border="1"> <tr> <td>ヘッダ1</td> <td>ヘッダ2</td> </tr> <!-- ☆☆☆ ここから ☆☆☆ --> <tr> <td>111</td> <td>aaa</td> </tr> <tr> <td>222</td> <td>bbb</td> </tr> <!-- ☆☆☆ ここまで消したい ☆☆☆ --> </table> <!-- テーブル2 --> <table border="1"> <tr> <td>ヘッダA</td> <td>ヘッダB</td> </tr> <tr> <td>あああ</td> <td>いいい</td> </tr> </table> <!-- ========================= --> <tr>タグを<div>タグで囲んで、styleでhidden、visibleを切り替えようと考えましたが、<tr>に<div>タグが使えない事を知りました。 そこで、テーブル1を大きくテーブルで囲み、ヘッダとボディ部をセルに入れて、セルの表示・非表示を切り替えました。 これは上手くいったのですが、非表示にした場合、テーブル2との間は詰まるようにしたいのですが、もともと表示されていた分のスペースが出来てしまいました。 あまり、ロジックを組み込まずに作ろうと考えているのですが、上手い方法が思いつきません。 何か良い方法がありましたら、ご教授願います。 ターゲットのブラウザは… IE5.5~IE7 です。

    • ベストアンサー
    • HTML
  • tableレイアウトをcssで軽くできませんか?

    tableタグを使用して、ごく普通の表を作成し、Web上に掲載しています。 しかし、とにかく情報量が多く、情報が増えるたびに明らかに重くなってきました。 今のうちに対策をと思い、何とかcssを使用しソースを軽くしようと思っています。 現在掲載中の表は下記のような、いたってシンプルなものです。 <table class="table1"> <tr> <td class="midasi">日付</td> <td class="midasi">対戦相手</td> <td class="midasi">勝敗</td> <td class="midasi">備考</td> </tr> <tr> <td>1月1日</td> <td>○○高校</td> <td>勝ち</td> <td>4分30秒 ○×反則</td> </tr> <tr> <td>1月2日</td> <td>××高校</td> <td>負け</td> <td></td> </tr> 。 。 ~~~ 以下続く ~~~ 。 。 </table> 表である以上tableタグになってしまうのは仕方ないとは思うのですが、上手い具合にソースの量を減らせれば改善したいと思っています。 アドバイスの程、よろしくお願い致します。

    • ベストアンサー
    • HTML
  • cssでテーブルで細い線 その2

    こんにちはー。 「cssでテーブルで細い線」について http://okwave.jp/qa/q8073990.html で、教えて頂いたのですが どうしても出来ません。 例えば、こんな感じでやってみました。 ―――― <html> <head> <style type="text/css"> table[summary="WebDesign"]{ border-collapse: collapse; width: 400px; } table[summary="WebDesign"],table[summary="WebDesign"] td{ boder:solid 1px #1C79C6; } </style> </head> <body> <table summary="WebDesign"><!-- summaryは必須 TBODY+ -->  <tbody><!-- tbodyはひとつ以上必須 -->   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>  </tbody> </table> </body> </html> アップ先 http://yasaidemo.web.fc2.com/index2.html ―――― アップ先をご覧頂ければおわかりになると思いますが 中の線が出てきません。 私のスキル不足で大変に申し訳ございませんが ご指導ご鞭撻のほどお願いします。

    • ベストアンサー
    • CSS
  • CSSでのWebデザインについて。

    現在、Webページを作っておりCSSでデザインしようと思っているのですが http://jyouhouya3.sakura.ne.jp/ (情報屋さん。) このサイトや http://cowscorpion.com/  (Cow&Scorpion) このサイトのように、大体見てもらえれば分かって頂けると思いますが、大きいテーブルの中でサイトを作っているとでもいいますか・・・・ サイト自体の幅が狭いとでもいいますか・・・ どう説明したらいいのかわからないです、すみません^^;  して、Cow&Scorpionさんのソースを見てみまして この部分を作るタグが下記のようにでてきまして(多分間違っているでしょうが^^;) <base href="http://cowscorpion.com/"> <link rel="stylesheet" type="text/css" href="style.css" /> <div class="banner_top" align="center"><img src="/img/vbar.gif"></div> <table class="tablebody" cellspacing="0" cellpadding="0" border="0" align="center" width="730px" height="100%"> <td valign="top" class="i" colspan="2"> このままじゃ自分のサイトには貼れませんでした。CSSはサッパリなんでどこがどうなっているのか分かりません。 なお、HTMLは大体わかります。 とりあえずこの様にサイトを作るにはどのようにして、HTMLタグに書けばいいのでしょうか?  お手数ですがお願いします。 乱文、長文すみませんでした。

    • ベストアンサー
    • CSS
  • テーブルデザインをCSSで行う方法

    tableタグで組んでいるデザインをCSSに変更したいと考えております。 以下のHTMLをCSSでtableタグを使わずに実現したいのですが、可能なのでしょうか。 ※参考までに画面上のイメージも添付しました。 CSSが苦手なのでどなたかご教授下さい。 <html> <head> </head> <body> <table border="1" width="50%" height="20%"> <tr> <td colspan="2" rowspan="2"><p align="center">test</p></td> <td colspan="2" rowspan="2"><p align="center">test</p></td> <td colspan="2"><p align="center">test</p></td> <td colspan="2" rowspan="2"><p align="center">test</p></td> </tr> <tr> <td><p align="center">test</p></td> <td><p align="center">test</p></td> </tr> <tr> <td colspan="2">data1</td> <td colspan="2">data1</td> <td>data1</td> <td>data1</td> <td colspan="2">data1</td> </tr> <td colspan="2">data2</td> <td colspan="2">data2</td> <td>data2</td> <td>data2</td> <td colspan="2">data2</td> </tr> <td colspan="2">data3</td> <td colspan="2">data3</td> <td>data3</td> <td>data3</td> <td colspan="2">data3</td> </tr> </table> </body> </html>