画像を順番にセルへ入れる(空白がある場合)

このQ&Aのポイント
  • 画像の一覧をテーブルで作成するためのスクリプトを作成したい
  • 画像の枚数に応じてテーブルを適切に作成したい
  • 空白セルの処理についてアドバイスを求めています
回答を見る
  • ベストアンサー

画像を順番にセルへ入れる(空白がある場合)

画像の一覧をテーブルで作成したいです。 画像が増える可能性がありますので、画像が何枚であっても利用できるスクリプトにしたいと考えています。 例えば、画像が12枚の場合、 →横6枚並べるテーブルにすると、空白セルがなくきっちり画像のみでテーブルが完成する。 この場合は、いろんなコードを見よう見まねで下記のように作りました。 Total_set=12;//枚数 Img_Yoko=6;//横に並べる枚数 Img_Tate=Total_set/Img_Yoko;//行数 Kaku=".gif";//拡張子 ImgDir="./img/;//画像格納フォルダ Str = '<table cellspacing=0>'; Ga_Name=0;//画像の番号セット for(i=0;i<Img_Tate;i++){ Str += '<tr>'; for(j=0;j<Img_Yoko;j++){ Str +='<td>'; Str +='<img src="'+ImgDir+Ga_Name+Kaku+'" border="0"></td>'; Ga_Name++; } Str += "</tr>\n"; } Str += "</table>\n"; document.write(Str); 汎用性を持たせたいので、6で割り切れない時の処理をどうにかしたいのです。 例えば、画像が15枚に増えた場合、 →横6枚並べるテーブルにすると、3行目が3枚の写真と3個の空白セルになるようにしたい。 この空白セルの処理をどうしたらよいのか・・・悩んでます。余りとかを利用するのかな~?とかも考えたのですが、うまくいきません。 上記のスクリプトの改造、または全然違うやり方でも構いませんので、アドバイスよろしくお願いします。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

こんな感じで良いのでは? (レイアウトの為に全角スペース入れてます。使うときは全角スペースを消してください。) Total_set=15;//枚数 Img_Yoko=6;//横に並べる枚数 //Img_Tate=Total_set/Img_Yoko;//行数 Kaku=".gif";//拡張子 ImgDir="./img/";//画像格納フォルダ Str = '<table cellspacing=0>'; Ga_Name=0;//画像の番号セット while(Ga_Name<Total_set){  Str += '<tr>';  for(j=0;j<Img_Yoko;j++){   Str +='<td>';   if(Ga_Name < Total_set){    Str +='<img src="'+ImgDir+Ga_Name+Kaku+'" border="0"></td>';   }else{    Str +='&nbsp;</td>';   }   Ga_Name++;  }  Str += "</tr>\n"; } Str += "</table>\n"; document.write(Str); 外側のループはwhileにします。Img_Tateは使いません。 if(Ga_Name < Total_set){ このif文で画像の枚数を超えたか判定し、超えなければ画像、超えた場合は空白(&nbsp;)を表示

jamslot
質問者

お礼

ご回答有難うございます。 ご提示頂いたもので希望通りの画像一覧が作成できました! whileの使い方、改めて勉強になりました。本当にありがとうございました!

関連するQ&A

  • C#(超)入門本のテスト問題がわかりません……

    プログラムの(超)入門本でC#を勉強しています。 しかし、収録されているテスト問題に、答えがなく、困っています。 解答をお教えいただけないでしょうか。 ◆問題:このカレンダーを、C#によって記述しなさい http://cdn.uploda.cc/img/img5000f0dac9286.jpg ◆自分の考え 横と縦をカウントするフィールドを作り、横を七回forループ、縦を四回繰り返す 日にちをカウントするstring型フィールドを作り、一回ループ毎に一つづつ足す int tate, yoko ; string hinichi ; for(tate=1,tate<=4,tate++){ for(yoko=1, yoko<=7,yoko++){ } } ↑ここから先を、どう書いていいのかがわかりません。 どうやって、開始を水曜日からにするのか どうやって、hinichiに、1づつ足していくのか どうやって、31でカウント増加をストップさせるのか よろしくお願いします。

  • 正方形のセルに縦画像、横画像を中央に配置

    よろしくお願いいたします。 テーブルを使って、写真のサムネイル一覧表を作成しています。 100x100 の2つのセルをペアとして横に並べ、横画像(100w x 75h)または縦画像(75w x 100h)を入れています。 この時、横画像だけを入れたペアは、セルの高さが画像と同じ(75)になってしまいます。 常にセルの高さを 100に保つにはどのようにしたらよいのでしょうか。 現在は次のように記述しています。 <TR><!---- 高さ 100 OK --> <TD width="100" hight="100" align="center"><IMG src="W_100.jpg" width="100" height="75" border="0"></TD> <TD width="100" align="center"><IMG src="H_100.jpg" width="75" height="100" border="0"></TD> </TR> <TR><!---- 高さ 75 NG!! --> <TD width="100" hight="100" align="center"><IMG src="W_100.jpg" width="100" height="75" border="0"></TD> <TD width="100" align="center"><IMG src="W_100.jpg" width="100" height="75" border="0"></TD> </TR>

    • ベストアンサー
    • HTML
  • 複数の画像を横並びにし、その空白を均等にしたい

    ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ このように、複数の画像を並ばせて表示したいのですが、 画像の横サイズがバラバラなため、どうしても一番右側がガタガタになってしまいます。 やりたいことは、大枠の左右の幅を固定し、画像の間の空白を均等にしたい。 そして、画像の下に画像名を左揃えで入れたい。 画像の横サイズはバラバラです。(縦サイズは全て同じ) 1行に入る画像の枚数も同じではありません。 テーブルを使ってやってみましたが、うまくいきませんでした。 CSSを使えばできるのでしょうか? 色々と勉強しながらやっていますがまだまだ初心者で、どうにも知識が足りません。 どなたか解決方法を教えて下さい。 よろしくお願いします!

    • ベストアンサー
    • HTML
  • MySQLに画像パスを入れたい

    MySQLに画像パスを入れたいのですが、どの値をどの様に入れるか 判らないので教えてください。 phpMyadminとphpPHP 5.2.17で、テーブル名/schedule カラム名 id/name/in_time/main/img(ここに画像パスを入れたい)です。 画像はデータベースに直接入れるのではなく、GDでサムネイルをつくりそのパスを記入したいのです。 やっと、画像をimgとthumbnailに入れることが出来たのですが、こんどはこの値を カラムimgに記載したいのですがどの様にするか詰まっています。 uptest.php ------------------- <?php isset($_FILES['upfile']) or die("no uploaded file \n"); $filename = $_FILES['upfile']['name']; $tmpFilename = $_FILES['upfile']['tmp_name']; $imgDir = 'img'; $thumbnailDir = 'thumbnail'; $destFilename = $imgDir . "/" . getFileId($filename); move_uploaded_file($tmpFilename, $destFilename) or die("Failed to upload $filename"); $thumbnailFilename = $thumbnailDir . "/" . getThumbnailFileId($filename); $width = 100; $height = 100; exec("convert -resize {$width}x{$height}! $destFilename $thumbnailFilename", $result, $status); ($status == 0) or die ("Failed to create thumbnail image"); # 保存するサムネイルファイル名をココで変更する function getFileId($name) { return $name; } function getThumbnailFileId($name) { return $name; } ?> upform.html ----------------------- <form action="uptest.php" method="post" enctype="multipart/form-data"> <div>送信する画像<input type="file" name="upfile" /></div> <div><input type="submit" value="送信" /></div> </form> 現在これで実験しています。 $sql ="INSERT INTO `schedule` SET //どの値をどの様に… 本当は、画像名のファイル名もdata値にして、同じ写真でも重ねがきしないようにしたいのですが…。 お手数ですが教えていただけないでしょうか。

    • ベストアンサー
    • PHP
  • CSSで縦長・横長の写真を一定に並べたい

    写真のギャラリーのようなものを作成しています。 写真のサムネイルが200×150pxのものと150×200pxのものがあり、並びはランダムです。 この写真を正方形の方眼紙に並べるように配置したいと思っています。 テーブルで作成すれば楽なのですが、文書構造的にCSSで行いたいと思っています。 リストでマークアップして、それぞれのli要素を200pxの正方形にしてから、その中央に画像を表示させたいのですが… 縦長の写真はtext-align:center;で処理ができるので、できましたが、横長写真の上下位置が中央になりません。 横長写真が入っているli要素だけに対してクラスを指定すればできそうなのですが、数が多いので、一括で処理できないか、と奮闘しております。 試しにli要素に対してline-heightを200pxで指定し、img要素に対してvertical-alignをmiddleで指定してみたのですが、Firefoxではうまくいくものの、IE(8)でNGでした。 現在のソースは以下の通りです。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ギャラリー</title> <style type="text/css"> <!-- #content { width: 612px; } #content ul { margin: 0px; padding: 0px; } #content li { list-style: none; line-height: 200px; float: left; height: 200px; width: 200px; text-align: center; border: 2px solid #009933; } #content li img { vertical-align: middle; } --> </style> </head> <body> <div id="content"> <ul> <li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li> <li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li> <li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li> <li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li> <li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li> <li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li> <li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li> <li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li> <li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li> <li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li> <li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li> <li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li> </ul> </div> </body> </html> どなたかお分かりになる方、いらっしゃいましたら、お知恵を拝借できれば幸いです。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • Webの表で画像を並べたい

    テーブルを使って画像を並べているのですが、どうしても空白ができてしまいます。ソースを見ても何が原因だかわかりません。 左側に145*89のセルが一つあり、右上に604*54のセル、右下には35*35、60*35、509*35の3つのセル(今後増やす予定です)を作り、画像を並べたいと思っています。 が、左の画像と右下(2つ)の画像、右下(2つ)の画像と右上の画像との間にそれぞれ少しだけ空白ができてしまいます。 何が原因だか分かりますか?どうかよろしくお願いします。 ソースは以下の通りです。 <table width="749" height="89" border="0" cellspacing="0" cellpadding="0"> <tr> <td rowspan="3" width="145" height="89"><IMG SRC="images/main_up_01.gif" width="145" height="89"> </td> </tr> <tr> <td width="604" height="54" colspan="10"><IMG SRC="images/main_up_02.gif" width="604" height="54"> </td> </tr> <tr> <td width="35" height="35"> <img src="images/top.gif" width="35" height="35"> </td> <td width="60" height="35"> <img src="images/top2.gif" width="60" height="35"> </td> <td width="509" height="35"> </td> </tr> </table>

    • ベストアンサー
    • HTML
  • HTML テーブルに画像を貼り付けるときのサイズ

    ページいっぱいに広がるテーブルをひとつ用意し、 それを横に3等分して、それぞれのセルの下部に画像を表示しようと思いました。 しかし、表示してみると、テーブルは画面の横幅よりも広がってしまい、思うとおりに表示できません。 画像の代わりに文字を表示してみると、思った位置に表示できているのですが・・・。 画像を、画面の横幅を3等分したセルいっぱいに表示するにはどうしたらよいのでしょうか? 現在のソース: <TABLE WIDTH="100%" HEIGHT="100%">  <TR ALIGN="center" VALIGN="bottom">    <TD WIDTH="33%">     <IMG SRC="~~" WIDTH="100%">    </TD>    <TD WIDTH="33%">     <IMG SRC="~~" WIDTH="100%">    </TD>    <TD WIDTH="33%">     <IMG SRC="~~" WIDTH="100%">    </TD>   </TR> </TABLE>

  • IMGタグで画像の繰り返し使用は…

    IMGについて質問させてください。 ページの背景として画像を使う場合、画像は縦・横方向に繰り返し使われてページ全面に貼り付けられると思います。 IMGタグで指定する画像を縦方向に繰り返し使うことはできますでしょうか? テーブルの中で使用する画像なのですが、テーブルの高さが可変なために高さ指定ができないのです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • htmlのtable内に画像

    初心者です。 tableの中に画像をぴったり貼り付けたいです。 しかし、セルの横に並んだセル内の一方に画像を入れると、 片方に幅が取られぴったり行きません。 ご存知の方がおられましたら教えてください。 よろしくお願い致します。 試した事 <table width="100%"border="1"> <tr> <td> <img src="test.jpg"> </td> <td> test </td> </tr> <tr> <td> test </td> </tr> <tr> <td colspan="2"> test </td> </tr> </table>

    • ベストアンサー
    • HTML
  • javascriptの下に空白ができる

    いつもお世話になっております。 ランダムに画像が表示されるjavascriptを作っており、無事に表示はされるのですが、そのランダム画像の下にテーブルを配置し、別の画像(javascriptを使っていない固定画像)をぴったりくっつけたいのですが、3ピクセルくらいの空白ができてしまいます。 Opera、Firedoxでは空白ができず、IEでのみできます。 何が悪いのでしょうか? 下記にタグを書かせていただきます。 <Script language="JavaScript"><!-- myImg = new Array() myImg[0] = "img1.jpg"; myImg[1] = "img2.jpg"; myImg[2] = "img3.jpg"; //--></Script> </HEAD> <BODY background="img/back.gif"> <SCRIPT language="JavaScript"><!-- i = Math.floor(Math.random()*);document.write("<img src="+myImg[i]+">");//--></SCRIPT> <table width="700" border="0"cellpadding="0" cellspacing="0"><th align="left" valign="top" scope="col"><img src="number1.gif" width="151" height="40" /> number1.gifがぴったりくっつけたい画像です。 以前FLASHを使用したページでも上記のようなことが起こり、教えて頂いて解決したので、(→ http://oshiete1.goo.ne.jp/qa4010291.html です。)同じようにやってみたのですが、ダメでした。 環境はWindows XP、使用ソフトはDreamweaver8です。 申し訳ありませんが、お助けいただけるとありがたいです。 よろしくお願いします。

専門家に質問してみよう