• ベストアンサー

CSSの関与した表以外の表を作りたい

ホームページ作成初心者です。コンテンツ部分に表(テーブル)を作りました。 CSSでパディング、マージンだけ指定してます。 ほとんどの表はこれでいいのですが、これとは別に表を作りたいのです。 その場合CSSが関与してしまいますが関与しないようにするにはどうすればいいのでしょうか? 何種類か作らないといけないので困っています。できれば横に2列(個)、下に3列(個)を 少しだけ間を空けてくっつけたいのですが作りかたが分かりません。画像添付しました。 どなたかご教授ください。

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

  • ベストアンサー
  • Yama-tani
  • ベストアンサー率44% (13/29)
回答No.7

<table> <tr> <td colspan="2" style="width:50%">&nbsp;</td> <td colspan="2" style="width:50%">&nbsp;</td> </tr> <tr> <td style="width:33%">&nbsp;</td> <td colspan="2" style="width:33%">&nbsp;</td> <td style="width:33%;">&nbsp;</td> </tr> </table> これで、横に2列(個)、下に3列(個)の要望の形にはなります。 違うスタイルを当てたいとの事なので、先頭の<table>を<table class="style-none">とでもしておいて .style-none{padding:0;margin:0;}/*style-noneのクラスのついた表に対するスタイル*/ .style-none td{padding:0;margin:0;}/*当該表の中のtdに対するスタイル*/ などと、別のスタイルの数値を当てればいくつでも、関与するスタイルを変更できます。 本来ですと、デザインに対するクラス名を付けるのは間違いですが、わかりやすいようにstyle-noneとしました。このように、{の前の場所の指定する場所をセレクタといいます。クラスやidで局所化を図れます。 前の質問で、#ヘッダ{などとされていましたので、局所化は既に利用されていると思います。セレクタが前述の方法では、既存のセレクタに詳細度で負けてしまい表示できない場合もありえますが、それは質問者さんのソースを見ないと、誰にもこたえられません。 上記のサンプルですと、style="width:??%"としていますが、これをインラインスタイルシートといいます。勿論、インラインでないスタイルシートでも、クラスわけをするとできますので、チャレンジしてください。 cssは自分でやらないと上達しません。誰かにやって欲しいなら、業者に頼みなさい。自分でやるなら、つまみぐい勉強法も可能ですが、体系的にも基本をすこし学ばれることをお勧めします。 掛け算、引き算が出来ない人には、割り算のやりかたを簡単に教えるのは難しいですし、やり方を聞いても、理解しにくいため、教わるほうもそんなことを聞いているんじゃないんだとなってしまいます。トランプのカードを一枚ずつ人数の前に配っていく方法なら、割り算を知らなくても可能ですので、つまみぐい勉強法も否定はしませんが、非効率だと思いますよ。

kasai2050
質問者

お礼

回答ありがとうございました。HTMLもCSSもあまり良く分からないままHPの制作にかかわっています。私のHPにかかわる仕事は出来上がったHPを更新したり、たまに少しリニューアルしたりする程度です。皆さんには「ちゃんと一から勉強しろ」と言われるのも分かりますが制作が本業ならともかく、私の仕事の中で3~5%ぐらいの比率しかありません。 年に数えるほどしかHPをいじることがないので、覚えたり勉強したりしても忘れてしまうのです。 そのために時間もお金もかけられないのでこのようなサイトを利用しています。 年のせいではないかもしれませんが60才前なので本を読んでもネットでも眠たくなるばかりです。 こういう利用者もいることをご理解ください。

その他の回答 (6)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.6

>以後、私の回答をしないでください。  それは失礼しました。でもきっと先で、「ORUKA1951はそんなこと言ってたな」とヒントになると期待しています。  ちょっと早とちりして、ずれていたと思いますが、簡単な例を挙げておきます。 <div class="tables">  <table class="two"></table>  <table class="two"></table>  <table class="tree"></table>  <table class="three"></table>  <table class="three"></table> </div> div.tables{position:relative;}/* サイズの基準となるので */ div.tables table.two{width:45%;} div.tables table.three{width:31%;margin-top:20px;} div.tables table{flat:left;} とか・・  具体的なソースがあると適切なアドバイスが出来るかも。 >ベストアンサー率、お礼率も低いようですね。  ポイントも、ベストアンサー率、お礼率もあまり期待していません。それらは目標にはしていません。私もつい昨年までは、スタイルシートもさっぱりわかりませんでした。もうしっかり高齢者の仲間入りをしてしまった(還暦迎えた(^^))のですが、人に教えようとするとどうしても勉強しなくてはなりません。それが身につける早道ですから・・。  まあ、懲りずにお付き合いください。すぐ追いつけますよ。若いのですからね。

kasai2050
質問者

お礼

ORUKA1951さん、初心者向けの回答ありがとうございました。 私のHPにかかわる仕事は出来上がったHPを更新したり、たまに少しリニューアルしたりする程度ですが制作が本業ならともかく、私の仕事の中で3~5%ぐらいの比率しかありません。 年に数えるほどしかHPをいじることがないので、覚えたり勉強したりしても忘れてしまうのです。 そのために時間もお金もかけられないのでこのようなサイトを利用しています。 大変、助かっています。 皆さんには「ちゃんと一から勉強しろ」と言われるのも分かりますが 私もORUKA1951と年齢があまり変わりません。 60才前なので本を読んでもネットでも眠たくなるばかりです。 こういう利用者もいることをご理解ください。

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.5

それって表なの?ただ並べるのに初心者だから、表のセルを利用すればやりやすいと思ったんじゃないのかな?テーブルは表に使うものであってデザインの配置に使うものではない。 初心者なら、htmlとcssを初心者的に基礎から学んだほうが早いと思うけど、そうすればこんな初歩的な質問でない。ご教示したくても、そういうデザインにしたい意味や、文章構造が示されないとhtmlやcssは書けないものなんだ。そのあたりを理解して欲しい。 でもそんなことはどうでもいいんだ!そういうデザインをやりたいっていうんだから、そういうふうに見えるものを間違っているけど、kasai2050さん的にはわかりやすいんじゃないかなっていうことと、インライン要素やブロックライン、インラインブロック要素を初心者はまず把握すべきという意味プラスおそらく使えないだろうなぁという悪意をもって、おいちゃんが、ご教示する。単独でトライして、それから、実際の場所にはめ込んで、悩めばいい。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <style type="text/css"><!-- div{ background:#0a509f; margin-right:2px; padding:0; display:inline-block; } .hyou{ width:158px; height:67px; } .table{ width:104px; height:50px; margin-right:3px; margin-top:2px; } --></style> </head> <body> <div class="hyou"></div><div class="hyou"></div><br> <div class="table"></div><div class="table"></div><div class="table"></div> </body> </html>

kasai2050
質問者

お礼

回答ありがとうございました。少しは前に進めそうです。 「テーブルは表に使うものであってデザインの配置に使うものではない。」はい、最近はそのようですね。今回は価格表など表が多くあるので質問しました。 以前はテーブルレイアウトも良かったので見やすかったのですがCSSを使うようになり、私の中ではややこしくなりました。 皆さんには「ちゃんと一から勉強しろ」と言われるのも分かりますが 私のHPにかかわる仕事は出来上がったHPを更新したり、 たまに少しリニューアルしたりする程度ですが、制作が本業ならともかく、 私の仕事の中で3~5%ぐらいの比率しかありません。 年に数えるほどしかHPをいじることがないので、覚えたり勉強したりしても忘れてしまうのです。 そのために時間もお金もかけられないのでこのようなサイトを利用しています。 年のせいではないかもしれませんが60才前なので本を読んでもネットでも眠たくなるばかりです。 ご容赦ください。

noname#158634
noname#158634
回答No.4

マルチを平然と自白とか… 思いますってなんだ?他人が書いたソースをいじっているのか? さて、「具体的で簡単な記載例を教えてください」とのわがままなご要望ですが、こんなものはHTMLとCSSの基礎なので自分でネットでも本でも使って調べてください。1分で分かることです。 <table class="xxx"> .xxx { xxxx: xxxx; } 確かにORUKAの長文原理主義屁理屈はウザいが、だからと言ってその程度の基礎中の基礎まで自分で調べられないレベルの人にはそれ以前の問題。

kasai2050
質問者

お礼

回答ありがとうございました。少しは前に進めそうです。 「他人が書いたソースをいじっているのか?」=いえ、違いますが、 CSS自体が良く分かっていないので思いますと書きました。 皆さんには「ちゃんと一から勉強しろ」と言われるのも分かりますが 私のHPにかかわる仕事は出来上がったHPを更新したり、 たまに少しリニューアルしたりする程度ですが、制作が本業ならともかく、 私の仕事の中で3~5%ぐらいの比率しかありません。 年に数えるほどしかHPをいじることがないので、覚えたり勉強したりしても忘れてしまうのです。 そのために時間もお金もかけられないのでこのようなサイトを利用しています。 60才前なので本を読んでもネットでも眠たくなるばかりです。 ご容赦ください。

noname#158634
noname#158634
回答No.3

今はtableにスタイルを適用しているということ? だとすれば一番簡単なのは区別したい<table>にidかclassをつける。

kasai2050
質問者

補足

回答ありがとうございます。 「今はtableにスタイルを適用しているということ?」はそうなっているのだと思います。 「区別したい<table>にidかclassをつける。」の具体的なで簡単な記載例を教えてください。 下記に同じ質問をしています。見本の画像もあります。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1378007133 1個1個の表(テーブル)を並べるか、全体で1つのテーブルでもいいのですが、個々には並ばないし 全体でも作るとどうも上の2個と下の3個のセルの縦の区切りが揃ってしまうので困っています。 初心者なので、なるべく具体的に解説のほどよろしくお願いします。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

チェックしてなかった・・ table{ border-collapse:collapse; } table,table td{ border:solid 1px black; } table td{ padding: 5px 10px; } table+table,table+table td{ border-color:red; } table+table+table,table+table+table td{ border-color:green; } table+table+table{ border-color:green; } table[summary="test1"]{ background-color:yellow; } table+table{margin-top:20px;} です。 HTML4.01、XHTML1.0では、tableのsummaryは必須なので書かれていると思いますが、それを使うのがもっとも楽です。 <table summary="菓子 洋菓子"> <table summary="菓子 和菓子"> <table summary="果物"> と書いてあれば、 table[summary~="果物"]{ font-weight:bold; } table[summary~="洋菓子"]{ color:green; font-size:2em; } とも、書けますね。~=はクラスと同じように、属性の値が半角スペースで区切られている場合、そのうちひとつにその値があれば適用されます。  現実にはtableにclass名をつけたり、tableが存在する場所で指定することが多いでしょう。 div.section table{} 本文中のtable div.section div.aside table{}補足記事中のtable とか・・

kasai2050
質問者

お礼

ORUKA1951さんは以前も回答を頂いてますが、 貴方の回答がすらすらとわかるようであれば質問しないのでなないでしょうか? もう少し専門知識があるかた向けの回答かと思います。 失礼ですがベストアンサー率、お礼率も低いようですね。 つまり相手の思うことに回答してないと言うことではないかと思います。 せっかくですが私のスキルでは理解しがたい説明です。 以後、私の回答をしないでください。

kasai2050
質問者

補足

失礼しました。画像がUPできてませんでした。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

 CSSでは、セレクタを使ってスタイルを指定する対象を区別します。セレクタとは文字通り識別子です。  セレクタには 基点セレクタ  全称セレクタ  タイプセレクタ それに続くセレクタ  子孫セレクタ  子供セレクタ  隣接セレクタ オプションセレクタ  属性セレクタ   クラスセレクタ(HTMLのみ)  一意セレクタ  擬似クラスセレクタ  擬似要素セレクタ などがあります。  tableが何らかのセレクタの組み合わせで区別できればよいですね <table summary="test1">  <tbody>   <tr>    <td>一列</td><td>ニ列</td>   </tr>   <tr>    <td>1</td><td>2</td>   </tr>  </tbody> </table> <table summary="test2">  <tbody>   <tr>    <td>一列</td><td>ニ列</td>   </tr>   <tr>    <td>1</td><td>2</td>   </tr>  </tbody> </table> <table summary="test3">  <tbody>   <tr>    <td>一列</td><td>ニ列</td>   </tr>   <tr>    <td>1</td><td>2</td>   </tr>  </tbody> </table> と三つ並んでいた場合 table{ border-collapse:collapse; } table table td{ border:solid 1px black; } table td{ padding: 5px 10px; } table+table{ border-color:red; } table+table+table{ border-color:green; } table[summary="test1"]{ background-color:yellow; } table+table{margin-top:20px;} としたり、・・・ このセレクタと、詳細度の計算はCSSのカスケーディングと共に最も重要なポイントです。 『CSSでパディング、マージンだけ指定してます。』 というプロパティを学ぶより、先にしっかり学ばないと、余計なクラス名やIDをつけたり、無駄なdivで囲んだりと、無駄なHTMLやCSSを書くことになり、デザインを変えるたびにHTMLを書き直す直すなど、CSSを有効に使えなくなります。 ★5. セレクタ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/selector.html ) ★6. 値の割り当て、カスケード処理、継承 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html )  仕様書でも当然、プロパティの説明より前にある。

関連するQ&A

  • <TABLE>を複数個使うときのCSS問題勃発!

    DreamweaverMXでホームページを作っています。 先ほど大問題が発生しました。ページ内にテーブルを使って表を設置したのですが、CSSからtableに対してマージンやパディングを指定したのですが、当然のことながら、すべてのtableに反映されてしまいます。 特に最上部にあるスライスで切り出したバナー画像はは見る影もありません。 そこでお聞きしたいのですが、複数のtableにそれぞれCSSを指定するのはどうしたらよいのでしょうか? よろしくお願いします。

  • CSSでの表の作成について

    CSSでの表の作成方法を教えてください。 table要素使わずCSSのみで表の作成は可能でしょうか? 作成したい表は 2列10行の表で、列幅は それぞれ違った幅を指定、行の高さも それぞれの行によって 高さを変えたいと思っています。 背景色の指定、ボーダーの指定もしたいです。 table要素使わずCSSのみで表を作成するには、どうしたらいいのか教えてください。 初心者なので、CSSの内容とHTMLの内容(ソース)を書いたものがあると助かります。 どうかよろしくお願いします。

  • ブラウザでプレビューでCSSが反映されません・・・

    現在、CSSでホームページを作成しているんですが、ブラウザのプレビューで見てみても、なぜかCSSで指定したレイアウトが反映されません。 ドリームウィーバーの画面ではCSSが反映されているんですが、ブラウザだと反映されていない状態です。 どうすればいいのでしょうか? また、以前はテーブルを使用していました。 大きな枠はCSSで作成するのは比較的簡単なんですが、同じ枠内に|横2列2列のコンテンツなどを作る時もCSSで作成するべきなのでしょうか? それともCSSでテーブルを組み合わせて作成しても問題ありませんでしょうか? 質問内容が2つになってしまいましたが、どうかご教授よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CSSでの幅、長さなどの指定

    CSSのソースをみると、 ボーダーの幅、ボックスの幅、マージン、パディングと いった大きさをピクセルではなくemや、%で指定している のをよく見かけますがデザイン上は、どちらを使うのが 正しいですか? 原則としてはピクセルを使うのが正しいと Webサイトや書籍でも書いてあるのですが、それがなぜなのかも よく分かりません。 この疑問について教えていただけたら幸いです。

  • CSSで、表をデザインしたいのですが…

    CSS初心者です。 現在作っているサイトは、CSSの部分とHTMLは別ファイルになっています。 CSSで表をデザインしたいのですが、ページによって表のレイアウトが違い、パターンが5~6種類あります。 CSSでの表の設定はおおむねわかりますが、 ・1つの表にしか使わない記述を、それぞれの表の数だけいくつもいくつも書くのか? ・それだったら、HTMLの中にHTMLとして記述してもいいのでは? ・でも、CSSで書いた方がいいであろう設定をHTMLに書いて混在させるのはあまりすっきりしない… と、悩んでいます。 このようなサイトを作る場合は、普通どのようにするのでしょう? また、いくつものパターンの表の設定をするのに、一気に設定できるような方法はあるのでしょうか? 表は、○列○行といったようなごくシンプルなものばかりで、ただそれぞれが列と行の数が違うものです。 もしかしたらとんでもない考え方をしているのかもしれませんが、どうかご教示下さい。

    • ベストアンサー
    • CSS
  • cssでロールオーバーした画像が、一部だけずれてしまいます。

    cssで、ulやdisplay:blockを使って、画像が8個横に並んだメニューを作り、ロールオーバーさせていたのですが、横に並んだメニューの一番左の画像だけが、マウスのオンオフに関係なく、なぜか3pxほど下に沈んでしまうのです。 始めは普通に表示されていたのですが、メニューより下の項目を色々いじっている間に、いつの間にやら下がっていました。 もしや、変なマージンやパディングがいけないのではと思い、メニュー以下の項目を全部消してみたのですが、元には戻りませんでした。 cssバグなども色々調べてみたのですが、もう本当にわかりません。 cssやhtmlをここに書きたいのですが、文字数制限にひっかかってしまうので、何かこういった現象の原因になりそうな要因、できれば解決方があれば教えていただけると幸いです。 お力を貸していただければと思います。 よろしくお願いします。

  • cssの段組レイアウトについての質問です

    かなり初歩的なことだと思うのですがこのことばかりがひっかかっています ブックオフの立ち読みでcssの本を読んでいたら 段組レイアウトというのを目にしました。 それはまず下敷きにマージン次にパディング、その上に内容を書く・・・というものでした。 一方ネットで調べてみたら、段組レイアウトのやり方のサイトをよんでみると 「ボックスを左と右にわけたり、上と下にわけたりする」だけで、マージン、パディングのことは書かれてなかったんですよね。(そもそも書くまでもないのかもしれませんが) よく3段組レイアウト2段組レイアウトと聞きますがそれは、立体的にとらえて領域をミルフィーユみたいに入れ子させて乗っけてくからなのでしょうか? それともボックスを平面的に並べることが段組レイアウトなのでしょうか? 理解力が足りずどうもよくわからなくて へんな質問ですいません。回答お願いします。

  • DOCTYPEスイッチとCSS

    CSSを自力で勉強中の者です。 WinIEの、マージン&パディングをコンテンツサイズに 含んでしまうバグ?を回避するために ハックを利用するやり方が様々な媒体で見られます。 一方でDOCTYPE宣言で標準準拠モードになる DOCTYPEスイッチという機能がWinIE6やMacIE5.x以降には あるというのをネットで知りました。 ハックを使うやり方だと、width、heightの指定を 2回やらなくてはならないようですので、 DOCTYPEスイッチを利用して一度で済ませる方が コーディング的にかなり楽だと思うのですが、 そう書かれている文書はあまり目にしません。 ハックを利用する理由は、 ・単にWinIE5.x以前を切り捨てないため なのか、 ・DOCTYPEスイッチを利用する事に何かしら弊害がある のかなと憶測しているのですが... 日夜コーディングに勤しみ「これだ!」という理由をお持ちの方、 どうかご教授くださいませ。

  • swfファイルの下に隙間ができる

    firefoxとNNだけはswfファイルの下に5px程度の隙間ができてしまいます。 CSSでマージンもパディングも0にしていますが消えません。 IEではその隙間はなく、次の要素とぴったりとくっついているんですが…。 この隙間を埋める方法をご教授ください。

    • ベストアンサー
    • CSS
  • CSSで表のデザインをするには

    ホームページの作成を今めざしています。 それで、デザインをしやすいようにCSSを使って作ろうと思っているのですが、よくわからないことがいくつかありまして・・・。 文字のデザインは他のサイトやブログなどを参考にして何とかなったのですが、表を使ってレイアウトしようとするとうまくいきません。 そこで質問なのですが、 1.ウインドウの幅を縮めてもレイアウトが崩れないようにするにはどうすればよいのでしょうか? 2.表のセルごとに異なる配色や幅を指定するにはどうすればよいのでしょうか? これがどうにも分かりません・・・ この方法が分かる方、ご指導いただけると幸いです・・・

専門家に質問してみよう