
CSSだけで<table>の<td>や<tr>要素を並べ替えることができAますでしょうか?
例えば、HTMLで一行に3列になるよう以下の様に記述した時に
<table>
<tr>
<td>
<p>テキスト左</p>
</td>
<td>
<p>テキスト中</p>
</td>
<td>
<p>テキスト右</p>
</td>
</tr>
</table>
CSSでのそうさのみによって
見栄え的に縦3行、横1列に見えるようにできますでしょうか?
幅などをピクセル制限したりするのでも構いません。
もしHTMLで実現するとするならば
<table>
<tr>
<td>
<p>テキスト左</p>
</td>
</tr>
<tr>
<td>
<p>テキスト中</p>
</td>
</tr>
<tr>
<td>
<p>テキスト右</p>
</td>
</tr>
</table>
上記のような記述になると思いますが、あくまで最初のHTMLをCSSで変更して、HTML本体は書きかえない方法です。
もし、何らかの形で実現できそうな場合がありましたらアイディアをください。
お忙しいところお手数おかけしますが、よろしくお願いいたします。
※CSS記述の変更のみ。
※特定のブラウザに依存させたくない。
※Javasprictは使用しない。

A 回答 (6件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>ヒントだけでも
まだ検討中・・実用性がないので後回しなのでね。
上:tableをblock,trをinline-block、tdをblock
下:tdを隣接セレクタで区別してabsolute

No.4
- 回答日時:
困ってるわけじゃなさそうなので、あまりこういうのには参加しないのだけれども、個人的に興味があって試してみたけど。
firefox.Opera,Sfariは大丈夫だけど、IEはtable要素をblock要素に変換しないため、ダメだね。相変わらず、くそIE・・・こいつのためにいつも泣かされる。

確かに困り度はつけすぎました。すみません。
興味を持っていただいてありがとうございます。とても素晴らしい回答だと思います。
とりあえずIEに関しては考慮しないとして、良ければCSSの記述方法を教えていただきたいと思います。もちろん事前に予測しうる範囲でチャレンジしてみたのですが、行き詰ったためご教授願えればと思います。もしくはヒントでも…。
よろしくお願いいたします。ご回答ありがとうございます。
No.3
- 回答日時:
ご提示のサンプル限定で、無理やり…
table { border-collapse: separate;}
tr td { border:1px solid gray; position:absolute; }
tr td:first-child { top:0.2em; }
tr td:nth-child(2) { top:1.7em; }
tr td:nth-child(3) { top:3.2em; }
IEは効かないかも…(FF3.5、Opera10で確認)
既回答者様の回答の通り、実用的にはナンセンスですけど。
この回答への補足
ご返答ありがとうございます。
チャレンジングですけど、実現に向かおうとするとてもいいアイディアですね!
後で試してみます。
他にもアイディアが浮かびましたら。ご連絡ください。
よろしくお願いいたします、ありがとうございます。
ご返答ありがとうございます。
チャレンジングですけど、実現に向かおうとするとてもいいアイディアですね!
後で試してみます。
他にもアイディアが浮かびましたら。ご連絡ください。
よろしくお願いいたします、ありがとうございます。
No.2
- 回答日時:
無理だと思います。
このようなレイアウト変更を想定される場合、TABLEタグじゃなく、各要素をDIVで区切るのが普通かと。
見栄えはテーブルと同じく、CSSを切り替えることで縦にも横にもできます。
この回答への補足
ご返答ありがとうございます。
おっしゃる通りです。divで組むべきです。ただ今回は既成のものを後から変更しなければならず、HTMLの書き換えができないためにこのような課題(CSSのみでの変更)が発生してしまいました。
何かそれらしく見せるだけでも構わないので、何かアイディアが浮かびましたら、ご報告くださいませ。
よろしくお願いいたします。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Safariでテーブルのセルの高さ...
-
ホームページ 表の上の余白を...
-
colspanを使うと正しく表示でき...
-
tableにul,または,olを入れられ...
-
テーブルのセルに画像をピッタ...
-
大量にあるrowspanを分割したい。
-
TRタグの余白をcssで設定するには
-
エクセルで、タグを自動生成
-
tableでcolspanを使うと次行以...
-
テーブルの位置
-
テーブルをスクロールさせると...
-
文字列が入っているtdを削除せ...
-
cssで、表示されるテキストによ...
-
テーブルの行を折りたたみたい...
-
テーブル<TD>内に均等割付で表示
-
逆L字の表(table)組み
-
テーブルの位置を細かく指定し...
-
テーブルの横に画像を
-
テーブルタグの中にdivを含めて...
-
html でのテキスト結合について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの行を折りたたみたい...
-
テーブルの任意の列を非表示に...
-
テーブルのセルに画像をピッタ...
-
tableにul,または,olを入れられ...
-
テーブルのヘッダとボディの幅...
-
cssで、表示されるテキストによ...
-
中に<table></table>が使えるア...
-
逆L字の表(table)組み
-
テーブルの表示がずれます
-
TRタグの余白をcssで設定するには
-
EXCELからhtmlへの変換で罫線が...
-
テーブルのセルにアンカー
-
ASP GridViewで1レコード2行を...
-
colspanを使うと正しく表示でき...
-
tableの要素(tr、td)に一...
-
文字列が入っているtdを削除せ...
-
htmlのtable内に画像
-
tableの中にtableを作りスクロ...
-
テーブルタグのセルの幅の一部...
-
Htmlのtd要素の中で半角の空...
おすすめ情報