重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

wordpressでホームページを作っています。
テーブル(3✖️3のテーブルに写真)を使って写真を表示しているのですが、レスポンシブ対応で、スマホ表示になった時に、テーブルの幅を画面に合わせて縮小したいのですが(テーブルの形はそのままに全画面表示にしたい)、cssでtableのwidthを100%にしても画面幅からはみ出してしまいます。
どのような方法があるのでしょうか?
教えて下さい。

A 回答 (4件)

レスポンシブっていうより、リキッドでいいのでは?


つまり、親tableに対して子tdはパーセントで幅を決めてやる。3枚なら、33.3%だし、4枚なら25%。

style------
table{width:100%;}
td{width:33.3%;}
td img{width:100%;}



html-------
<table>
<tr>
<td><img src="写真.jpg" alt=""></td>
<td><img src="写真.jpg" alt=""></td>
<td><img src="写真.jpg" alt=""></td>
</tr>
<tr>
<td><img src="写真.jpg" alt=""></td>
<td><img src="写真.jpg" alt=""></td>
<td><img src="写真.jpg" alt=""></td>
</tr><tr>
<td><img src="写真.jpg" alt=""></td>
<td><img src="写真.jpg" alt=""></td>
<td><img src="写真.jpg" alt=""></td>
</tr>
</table>
    • good
    • 2

http://necomesi.jp/staff/shimada/responsive-table/
のようなことがしたいのですが・・・
 レスポンシブとは程遠い、javascriptを使用して描画--文字サイズを含めて--を制御していますね。文字サイズが一緒に縮小されたのではまずいのじゃないかと・・

 ウェブ開発でしたら、開発ツールの豊富なfirefxをお使いだと思いますが、そのアドオンweb developerとかfirebugでjavascriptを無効にしてみるとか、FireMobileSimulatorでユーザーエージェントを変更してみるとか。

 繰り返しになりますが、レスポンシブとは、ウィンドウの横幅でスタイルシートを切り替える手法です。リキッドでデザインされたページに対して、それでは対処できない場合に使用します。
 具体的には、3列の段組みされているものを、狭いディスプレイでは2段や1段にするとか、
┌─────────┐
├─┬─────┬─┤ 幅広ディスプレイ
│・│・・・・・│・│ ウィンドウ幅が変わっても表示幅は追随して
 navi  本文 aside 変化する。
    ↓
┌─────┐
├─────┤
│・・・・・│      レスポンシブ
~~~~~~~ スマホ  指定された幅よりさらに小さくなると、
├─────┤      デザイン自体が変化する。
│・・navi・│
├─────┤
│・aside ・│

 なお、javascriptを使用すると携帯電話やjavascriptを無効にしているブラウザでは利用できません。また携帯電話では・・

★レスポンシブは現在は、mediaqueryを使います。
MediaQuery まとめ - IT戦記( http://d.hatena.ne.jp/amachang/20080425/1209139140 )
 がわかりやすいかな。ほかにもたくさんあります。

 さて、本題の画像を3列3行、計9枚並べる手法ですが、別にtableを使う必要はありません。もし、それが表データでない場合はtableを使うべきではありません。
 どのような画像で、どういう理由で3×3なのかが示されていませんので具体的なマークアップは不可能です。
 ★HTMLは文書構造を示すもの、スタイルシートはプレゼンテーションの指定。この区別をきちんとしておかないと・・
    • good
    • 1

まず、最も基本的で重要なことですが、15年前HTML4.01が勧告されて依頼


『単に文書内容を整形する目的だけで表を用いるべきでない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』
 tableはあくまで二次元データを現すもの・・列は金額、行は日付とか・・・
 そのために、デザインのために
>テーブル(3✖️3のテーブルに写真)を使って写真を表示している
 ことは根本的に誤りです。

>レスポンシブ対応で、スマホ表示になった時に、
 レスポンシブは、HTML4.01,CSS2.1時代のメディア別スタイルシートの拡張です。
 その前提として、リキッドデザインなのですよ。リキッドだけでは対応できないときにレスポンシブをつかいます。

★例えば次のようにマークアップします。
<ul id="photoAlbam">
 <li><img src="" width="" height="" alt="">
  <p>山中湖からの富士山</p>
 </li>
 <li><img src="" width="" height="" alt="">
  <p>河口湖からの富士山</p>
 </li>
・・・
スタイルシートで
ul#photoAlbum{margin:0;padding0;border:none;text-align:center;}
ul#photoAlbum li{display:inline-block;width:30%;position:relative;}
ul#photoAlbum li img{width:100%;height:auto;}
ul#photoAlbum li p{text-align:left;}
とか・・
あるいは、
ul#photoAlbum{margin:0;padding0;border:none;text-align:center;}
ul#photoAlbum li{display:inline-block;width:30%;min-width:200px;position:relative;}
ul#photoAlbum li img{width:100%;height:auto;}
として、狭いディスプレイだと2列にするとか・・
    • good
    • 0
この回答へのお礼

HTML4.01の勧告、及びリキッドデザインについて調べました。
とても勉強になりました。ありがとうございます。

ただ、この3✖️3の形を崩さずに小さくしていきたいのですが、
教えていただいたやり方を試してみたのですが
私が未熟なためかうまくいきません。
せっかく教えていただいたのにすみません。

http://necomesi.jp/staff/shimada/responsive-table/
のようなことがしたいのですが・・・

お礼日時:2015/08/17 17:53

ユーザーエージェントをみて振り分けするのが賢明かと

    • good
    • 0
この回答へのお礼

解答ありがとうございます。
しかし、初心者の私には少し難しいですね。
@media screen and (max-width: **px)
で振り分けているのですが・・・

考えてみます。
ありがとうございました。1

お礼日時:2015/08/17 17:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!