• 締切済み

スタイルシートで対応できますか?

ショッピングカートを作成しており、スキンテンプレートHTML内に$cart_in変数を 入れること、横1列で縦並びに商品が陳列されます。これを、CGIをいじらないで(CGI内では横に繰り返しすることは出来ないので・・・)、CSS段組等で横に2列、3列で折り返し、縦に繰り返す方法で対応できないでしょうか? 例えば、一番外はテーブルを使い、入れ子でCSS段組をして、テーブルサイズを調整すれば、横に繰り返すとか?初心者なのでできれば、簡単なソースで回答していただけるとありがたいです。 ------------------------------------------------------------------------------- <table> <tbody> <tr> <td> $cart_in </td> </tr> </tbody> </table> ---------------------------------------------------------------------------------

  • HTML
  • 回答数3
  • ありがとう数1

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

わりと一般的なfloatを使った方法だとこうなります。 ※テンプレート(id="SYOUHIN"という大枠で個別のdivを囲う) <div id="SYOUHIN">$cart_in<br class="clearfix"></div> ※CSS #SYOUHIN { width:400px;/*大枠の幅を指定。中のdivのwidthが100pxなら4つ並べる*/ } #SYOUHIN div{ float:left;/*個別のブロックを浮動化*/ /*個別のブロック間の余白を調整するなら以下。*/ /*もちろん大枠の幅のほうも合わせた数値にしておく*/ margin-right:XXpx;/*右隣りとの余白*/ padding-bottom:XXpx;/*下との余白(marginでは調整が効かないケースもあるのでpaddingを使用)*/ } #SYOUHIN .clearfix{ clear:both;/*浮動化の終了*/ }

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

全体幅をCSSで制限する事で折り返させる事は可能ですが、 何個一行に書いたら折り返す、といった個数での折り返し制御は無理そうです。 テンプレート上は <div id="SYOUHIN">$cart_in</div> としておき スタイルは以下。 <style type="text/css"> #SYOUHIN {width:XXem;}/* XX には文字数*/ </style> $cart_inを実際に展開させるとどのようになるかの具体例があるともうちょっと別の方法があるかも。 (というか、それがわからないのでこの回答の例だと、「商品」の途中で改行が入る可能性もあります。)

semuji
質問者

補足

ちょっと質問の仕方がわかりづらくて申し訳ありません。 質問の内容とちょっと変わってしましますが、例えば <div style="width : 100px;height : 100px;">商品ブロック</div> という一つのブロックがあり、このブロックの一つに自動的にCGIスクリプトで商品画像、価格、カートボタンを入れたものが入ります。 その為、HTMLスキン内の商品ブロックの中に$cart_in$と一つのブロックでしか書き込むことができず、自動的に吐き出したCGIが下に繰り返します。そのため、HTML上では、この商品ブロックのタグが1つしか書き込まれていないので、下に繰り返されると思いますが、商品ブロックタグである<div>----</div>を回り込みで指定するかなどの方法はないでしょうか?逆に外に一つ大きなMainブロックを作り全体サイズを指定してとか?入れ子にするとか? 申し訳ございませんが、わかればご教授下さい。

noname#39970
noname#39970
回答No.1

multi-column というcss3のstyleによってなら実現できるみたいだけどIEでは対応できないかも http://deegg.main.jp/ref/mozilla/naro/2005gecko_innovation.html#multi_column firefoxでも1.5の時に試験的に使えるだけみたいで2.xはどうなのか…一応段組表示されてるけど(2.0.0.6)

semuji
質問者

補足

CSS3のスタイルも今後勉強して行きたいと思います。圧倒的にIEユーザーが多いので、IE対応してくれることを期待したいです。 今後のIEもCSS3に対応されていくと思いますので今から勉強してみます。

関連するQ&A

  • スタイルシートについて

    <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD><IMG src="i1.gif" width="64" height="64" border="0"></TD> <TD><IMG src="i2.gif" width="64" height="64" border="0"></TD> </TR> <TR> <TD><IMG src="m1.gif" width="32" height="32" border="0"></TD> <TD><IMG src="m2.gif" width="32" height="32" border="0"></TD> </TR> </TBODY> </TABLE> </BODY> </HTML> こういったTableを使った表がある場合、スタイルシートで示すことは出来ますか?もし出来るならそのソースを教えてください。 また、こういったTableのホームページを一括でスタイルシートに変換できるソフトが存在していたら教えてください。 それと、この行数がかなり大きくなると、Tableよりも軽く表示がされると聞いたのですが本当でしょうか? ご返答、何卒、よろしくお願い致します。

    • ベストアンサー
    • HTML
  • これをスタイルシートでするには

    以下のことをスタイルシート(CSS+<li>などを使って)でするにはどうしたらいいのでしょうか? <table border="0" width="150"> <tr> <td>なんでだろう~</td> </tr> <tr> <td>CSS is cool</td> </tr> </table> よろしくお願いします。

    • ベストアンサー
    • CSS
  • スタイルシートの書き方

    HPの中に以下のようなテーブルを並べて作っているのですが、後からまとめて編集しやすいようにCSSファイルを別に作ろうと思います。 自分であれこれ試してはいるのですが、スマートな(?)スタイルシートの書き方がいまいちわかりません。 どのように指定すればいいでしょうか? 因みに下のタグもかなり自己流な部分があるのではないかと思うので、おかしいところがあれば指摘してください。 よろしくお願いします。 ------------------------------------------------------ <table border="0" bgcolor="#000000" cellspacing="0" cellpadding="0"> <tr> <td> <table border="0" cellspacing="1" cellpadding="2" width="500"> <tr><td bgcolor="#ffffff" width="150">AAA</td><td>BBB</td></tr> </table> </td> </tr> </table>

    • ベストアンサー
    • CSS
  • テーブル入れ子した時の、テーブル外枠罫線を非表示にしたい

    下記のように、入れ子にしたテーブルを作成しましたが、「AA, BB, 10, 20」のテーブル外枠線が太くなってしまいます。全て細い線で表示させるには、入れ子にしたテーブル外枠罫線を非表示にすれば良いのかなと思うのですが、どうすればよろしいでしょうか? また他によい方法があればアドバイスお願いします。 条件として、 (1)入れ子でテーブルを作成 (2)教えて!gooのように細い線を使用 です。 よろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <STYLE TYPE="text/css"> <!-- TABLE { margin: 0px; border: 1px solid #ff0000; border-collapse: collapse; } TD { padding: 0px; border-style: solid; } --> </STYLE> <TITLE></TITLE> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD>みかん</TD> <TD>バナナ</TD> <TD>パイン</TD> </TR> <TR> <TD>やさい</TD> <TD> <TABLE width="100%" border="1"> <TBODY> <TR> <TD>AA</TD> <TD>BB</TD> </TR> <TR> <TD>10</TD> <TD>20</TD> </TR> </TBODY> </TABLE> </TD> <TD>りんご</TD> </TR> <TR> <TD>いちご</TD> <TD>すいか</TD> <TD>れもん</TD> </TR> </TBODY> </TABLE> </BODY> </HTML>

  • スタイルシートのせい?IEのせい?

    自己サイトのリニューアルに伴い、今までゴチャゴチャだったHTMLソースをHTML+CSSで簡潔にしたい、と思って作業を開始したのですが、例えば下記のように (外部スタイルシート) TABLE{ padding-top : 5px;padding-left : 5px;padding-right : 5px;padding-bottom : 5px; border-width : 1px 1px 1px 1px;border-style : solid solid solid solid;border-color : black black black black;} (HTMLその1) <table width="500"><tbody><tr> <td>あああああ</td> </tr></tbody></table> (HTMLその2) <table border="0" cellpadding="0" cellspacing="0" width="500"><tbody><tr> <td>あああああ</td> </tr></tbody></table> と記述しIE6で確認したところ、その2では思った通りの余白(padding)ができるのに、その1ではできませんよね。 CSSに関するページを読みあさる限りではその1の記述の方が正しいと思われるのですが・・・ CSSでpaddingを指定しているのに、わざわざHTMLで0にしなきゃいけないのが納得いかない・・・ これは私のCSSの記述の仕方が悪いのでしょうか? それともIEの解釈によるもの? 本当は上記のようなレイアウトも<div>でやりたいのですが、まだ抵抗があって・・・ このままでは結局以前と同じゴチャゴチャのHTMLソースになってしまいそうです・・・ ちなみにエディタはHPBv6をメインで使っていますが、最終的にはテキストエディタで手直ししています。 他のブラウザではまだ動作未確認です。

    • ベストアンサー
    • CSS
  • tdのスタイルシート

    <table width="300" border="0"> <tr> <td height="10" bgcolor="#FFFFFF">1</td> </tr> <tr> <td height="10" bgcolor="#FFFFFF">2</td> </tr> <tr> <td height="10" bgcolor="#FFFFFF">3</td> </tr> </table> height="10" bgcolor="#FFFFFF"が連続しているHTMLをCSSで表示することは可能でしょうか? height="10" bgcolor="#FFFFFF"をCSSで設定して、HTMLには書かないようにしたいのですが・・・

    • ベストアンサー
    • CSS
  • CSSがわかりません!

    <table> <tbody> <tr> <td>あ <td>い <td>う ・・・ って感じになってて、この「い」だけを300pxの幅にしたいです。 CSSに td.under_supplementation_table{ width: 300px important!; } と記述し、 <table> <tbody> <tr> <td>あ <td class="under_supplementation_table">い <td>う に直しても、うまくいきませんでした。 正しい修正方法を教えてください。

    • ベストアンサー
    • CSS
  • テーブルの入れ子について

    このようにテーブルを入れ子にするのは不可能なのでしょうか? <table>  <tr>   <td>1</td>   <td>2</td>   <td>3</td>   <td>4</td>  </tr>  <tr>   <td colspan="4">     <table>      <tr>      <td>5</td>       <td>6</td>       <td>7</td>       <td>8</td>      </tr>     </table>   </td>  </tr> </table> cssなどでいろいろと設定しても、 「5・6・7・8」のセルが「1」のセルの幅にしかなりません。 colspanしているセル全体にテーブルを置きたいのですが・・・。 間違いを教えて下さい。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 外部スタイルシートがテーブル内に効かない

    外部スタイルシートの設定が、テーブル内には効きません。 特に、フォントや行間を効かせたいのですが、どうしたらいいのでしょうか。 以下、大雑把ですが。 #main { float: none; margin-left: 132px; line-height: 1,5em; margin-top : 50px; } #main td, th { line-height: 1,5em; } と外部スタイルシートで指定していて、 <DIV id="main"> <TABLE cellpadding="10" background="image/003-002.gif" style="filter:Alpha(opacity=75);"> <TBODY> <TR> <TD> <H3>内容</H3> </TD> </TR> </TBODY> </TABLE> というようなテーブルを書きました。 テーブルがなければ、スタイルシートは効きます。 初歩的な質問だとは思うのですが、テーブル内に行間などを設定する方法をお願いいたします。

    • ベストアンサー
    • HTML
  • スタイルシートで colspan=3と定義することは可能でしょうか?

    <style> x { } </style> <table> <tr> <td colspan=3 class="x">タイトル</td> </tr> <tr> <td>1</td><td>2</td><td>3</td> </tr> </table> また、有名なブラウザで対応している最新のCSSバージョンは何でしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう