アプリ版:「スタンプのみでお礼する」機能のリリースについて

tableタグの事で質問です。
まずは画像をご覧になって欲しいのですが、横に長い表をブラウザの幅に合わせて画像のようにテーブルの枠自体を改行
したいのです。(テーブルの中の文字を改行するのではなく枠を
tableタグの事で質問です。
まずは画像をご覧になって欲しいのですが、横に長い表をブラウザの幅に合わせて画像のようにテーブルの枠自体を改行
したいのです。(テーブルの中の文字を改行するのではなく枠ごと改行したいのです。
表の中には自動でプログラムされた値が入るようになっているらしく、TRタグはつかえません。(普通だと折り曲げてはいけないそうですが)この横長の表をHPに掲載すると横のスクロールバーが出るのが嫌なのと
iframeで表示させねばならず、スペース的に画像であらわしいたように折り曲げたいのです。

http://oshiete.goo.ne.jp/qa/3312100.html ←このjavascriptが近いかと思うのですが、この例は1行の表の例なので
2行まとめて折り曲げる方法がわかりません。(javascriptがわかりません)

どなたか上記のように表現する方法をご存知ではないですか?大急ぎでお願いします。

「テーブルの枠自体を折り曲げる」の質問画像

A 回答 (8件)

そのHTMLはとっても酷いものです。

酷すぎて反吐が出そう・・
<br>の連続なんて考えられないし
<table>にsummaryがないし
いきなり<tr>だし、<body>は必須
bgcolor=とか、<center>なんか使いまくりですし・・・

 phpの呼び出し因数は、ソースを見ればわかると思います。それをそのまま、No.6で示したHTMLのdt内、dd内に並べ替えて入れると良いです。
 tableのデーターは行で一塊ですが、tableを折り曲げるためには、列でまとめなければなりません。それは、こつこつと手作業になりますが難しくはないでしょう。めんどくさいだけです。

この回答への補足

何度も本当に恐縮でございます。呼び出し因数?・・・この表にあてはまるのって、変動する文字とかなんです。さきほど自分で●●●●.php__QUERY__&wDate=__FullDate__&t=__t__">__IfOK1____Mark____IfOK2__</a>__IfOK2__とかをはめこんだりとかしてみたけどもできなくて、基本がわからなければ何もできないのだとがっかりしてしまいました・・・・orz

補足日時:2012/09/27 21:05
    • good
    • 0
この回答へのお礼

本当に沢山の案をご提示いただきまして有難う御座います。
結局解決にはいたりませんでしたが(私の力量不足)
大変勉強になりましたありがとうございます。

お礼日時:2012/09/30 09:25

ちょっと遊んでみました。


div.returnableData{
width:80%;margin:0 5% 0 15%;
line-height:2.8ex;
}
div.returnableData dl,div.returnableData sl dt,div.returnableData dl dd{
display:block;list-style:none;margin:0;padding:0;text-align:center;
}
div.returnableData dt{background-color:rgb(255,200,200);}
div.returnableData dd.symbole{background-color:rgb(255,225,225);}
div.returnableData dd.en{background-color:rgb(255,255,225);}
div.returnableData dl{float:left;margin:5px 0;position:relative;}
div.returnableData dl dt,div.returnableData dl dd{width:8em;padding:0.1em 0.3em;border:solid 1px gray;position:relative;z-index:100;}
div.returnableData dl:before{content:"元素名\A元素記号\A英語名";white-space:pre;position:absolute;top:-1px;left:-5em;text-align:right;line-height:3.4ex;}
div.footer{clear:left;}

IE8以降,Firefox,Opera,Sfari,Chromeの最新版でOK

この回答への補足

色々ありがとうございます。それでもできませんでした><
以下がこの憎たらしいテーブルなのですが・・・↓

自動で値が入って横にびよーーーーんと伸びるタイプのものなのです。

このPHPの製作者の人には表の枠を折り曲げることはできません、したければ自分でやって下さいと言われました。
困ってしまってここでご相談にあがった次第です。

<html>
<head>
<title>__InstituteTitle____ReservationName__</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body bgcolor="__SBackground__" text="__STextColor__" link="__SLinkColor__" alink="__SALinkColor__" vlink="__SVLinkColor__">
__SHeader__


空きあり○ 空き枠残り1枠△ 空きなし×
<br>
<br>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
__WeekdayLoop__<td bgcolor="__DayColor__"><center>__IfOK1__<a href="●●●●.php__QUERY__&wDate=__FullDate__&t=__t__">__IfOK1____ThisDay____IfOK2__</a>__IfOK2__</center></td>
__WeekdayLoop__</tr>
<tr>
__WeekdayLoop__<td bgcolor="__DayColor__"><center>__IfOK1__<a href="●●●●.php__QUERY__&wDate=__FullDate__&t=__t__">__IfOK1____Mark____IfOK2__</a>__IfOK2__</center></td>
__WeekdayLoop__</tr>
</table>
<!--カレンダー-->
</form>
<br>
__IfSearch____ShowDate__(__Weekday__)の空き状況<br>
__IfSearch____IfResults____IfStylistTimeGrid__
<!-- 横スタイリスト・縦時刻のグリッド -->
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td></td>
__StylistLoop__<td>__StylistName__</td>
__StylistLoop__</tr>

__TimesLoop__<tr>
<td>__Times__</td>
__EachStylistLoop__<td align="center">__IfOpen__<a href="__OpenLink__" target="_top">○</a>__IfOpen____IfClose__×__IfClose__</td>
__EachStylistLoop__</tr>
__TimesLoop__</table>
<!-- 横スタイリスト・縦時刻のグリッド -->

__IfStylistTimeGrid____IfTimeStylistGrid__
<!-- 横時刻・縦スタイリストのグリッド -->
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td></td>
__TimesLoop__<td>__Times__</td>
__TimesLoop__</tr>

__StylistLoop__<tr><td nowrap>__StylistName__</td>
__EachTimesLoop__<td align="center">__IfOpen__<a href="__OpenLink__" target="_top">○</a>__IfOpen____IfClose__×__IfClose__</td>
__EachTimesLoop__</tr>
__StylistLoop__</table>
<!-- 横時刻・縦スタイリストのグリッド -->

__IfTimeStylistGrid____IfResults____IfNoResults__この日は空き枠がございませんでした。他の日でお調べ下さい。<br>__IfNoResults__
__IfYouCan__

</body>
</html>

補足日時:2012/09/27 18:37
    • good
    • 0
この回答へのお礼

本当に沢山の案をご提示いただきまして有難う御座います。
結局解決にはいたりませんでしたが(私の力量不足)
大変勉強になりましたありがとうございます。

お礼日時:2012/09/30 09:25

SEO的に問題ないようにdlでマークアップした例です。


タブは_に置換してあります。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
div.returnableData{
_width:80%;margin:0 auto;
}
div.returnableData dl,div.returnableData sl dt,div.returnableData dl dd{
_display:block;list-style:none;margin:0;padding:0;text-align:center;
}
div.returnableData dt{background-color:rgb(255,200,200);}
div.returnableData dd.symbole{background-color:rgb(255,225,225);}
div.returnableData dd.en{background-color:rgb(255,255,225);}
div.returnableData dl{float:left;margin:5px 0;}
div.returnableData dl dt,div.returnableData dl dd{width:8em;padding:0.1em 0.3em;border:solid 1px gray;z-index:100;position:relative;}
div.footer{clear:left;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
_</div>
_<div class="section">
__<h2>元素</h2>
__<div class="returnableData">
___<dl>
____<dt>水素</dt>
____<dd class="symbole">H</dd>
____<dd class="en">Hydrogen</dd>
___</dl>
___<dl>
____<dt>ヘリウム</dt>
____<dd class="symbole">He</dd>
____<dd class="en">Helium</dd>
___</dl>
___<dl>
____<dt>ベリリウム</dt>
____<dd class="symbole">Be</dd>
____<dd class="en">Beryllium</dd>
___</dl>
___<dl>
____<dt>ホウ素</dt>
____<dd class="symbole">B</dd>
____<dd class="en">Boron</dd>
___</dl>
___<dl>
____<dt>炭素</dt>
____<dd class="symbole">C</dd>
____<dd class="en">Carbon</dd>
___</dl>
___<dl>
____<dt>窒素</dt>
____<dd class="symbole">N</dd>
____<dd class="en">Nitrogen</dd>
___</dl>
___<dl>
____<dt>酸素</dt>
____<dd class="symbole">O</dd>
____<dd class="en">Oxygen</dd>
___</dl>
___<dl>
____<dt>フッ素</dt>
____<dd class="symbole">F</dd>
____<dd class="en">Fluorine</dd>
___</dl>
___<dl>
____<dt>ネオン</dt>
____<dd class="symbole">Ne</dd>
____<dd class="en">Neon</dd>
___</dl>
___<dl>
____<dt>ナトリウム</dt>
____<dd class="symbole">Na</dd>
____<dd class="en">Sodium</dd>
___</dl>
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt>First Published</dt>
___<dd>2012-08-10</dd>
___<dt>Last Modified</dt>
___<dd>2012-08-10 12:00:00 (JST)</dd>
__</dl>
__<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>

この回答への補足

理想にとてもちかかったのですが
あてはめるとぜきなかったです。 PHPで吐き出される値がテーブルタグのすきまなどにはいっていて
そのタグにあてはめようとしましたができませんでした
テーブルタグのままでどうにか見た目を折り曲げることは出来ないでしょうか。
とても勉強になりました。

補足日時:2012/09/27 15:53
    • good
    • 0
この回答へのお礼

本当に沢山の案をご提示いただきまして有難う御座います。
結局解決にはいたりませんでしたが(私の力量不足)
大変勉強になりましたありがとうございます。

お礼日時:2012/09/30 09:25

こんにちは。



jQueryが必要ですので以下のようにしてください。
そうすればもとのHTMLはいじらなくてもテーブルの構成を変更することが出来ると思います。


<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jq …
<script type="text/javascript">
//省略
    • good
    • 0
この回答へのお礼

JQUERYをどうやって使うのかがわからないのですが
それを貼り付けてみましたところ出来ませんでした
回答ありがとうございます。

お礼日時:2012/09/27 18:47

すみません、投稿直後に気づきました。



AA
BB
というのを

A
B
A
B

という並びにする方法はわかりません。
No.3のは

A
A
B
B

という並びです。(1行ずつ2段に表示します)
    • good
    • 0
この回答へのお礼

いえいえ、回答ありがとうございました。

お礼日時:2012/09/27 13:04

ブラウザ依存度が高い(サポートしているブラウザが少ない)かもしれません。


widthはborderやpaddingに影響しますので適宜調整してください。


<style>
table{
width: 400px;
}
tr{
overflow: auto;
width: 400px;
display: block;
}
td{
float: left;
width:100px;
display: block;

}
</style>

<table>
<tr>
<td>1</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
    • good
    • 0
この回答へのお礼

上記の件了解しました。ご回答有難う御座います。

お礼日時:2012/09/27 18:47

こんにちは。



JavaScript+jQueryを使って良い環境なら以下のようにすれば実現できると思います。
(JavaScriptが動作しない環境の人は動きません)

要望通り大急ぎで作ったので効率等は考えていません。

下記の場合「変身!」ボタンを選択するともとのテーブルが整形後に変更されます。
読み込み時に実行するようにするには削除A行と削除B行を削除すれば読み込み時に実行されます。


==== JavaScript
$().ready ( function() {
$('button').click ( function() { // 削除A
var $table = $('table');
var tdSize = $table.find('td').length / 2;
var tr1 = '<tr class="line0">';
var tr2 = '<tr class="line1">';
var html = '';
for ( var i = 0; i < tdSize; i ++ ) {
var $td1 = $table.find('tr:eq(0) td:eq(' + i + ')');
var $td2 = $table.find('tr:eq(1) td:eq(' + i + ')');
if ( i > 0 && i % 5 === 0 ) {
html += tr1 + '</tr>' + tr2 + '</tr>';
tr1 = '<tr class="line0">';
tr2 = '<tr class="line1">';
}
tr1 += '<td>' + $td1.html() + '</td>';
tr2 += '<td>' + $td2.html() + '</td>';
}
for ( i = 0; i < tdSize % 5-1; i ++ ) {
tr1 += '<td></td>';
tr2 += '<td></td>';
}
html += tr1 + '</tr>' + tr2 + '</tr>';
$('table').html ( $('<table/>').html ( html ) );
});//削除B
});
==== HTML
<table>
<tr class="line0">
<td>A-1</td>
<td>A-2</td>
<td>A-3</td>
<td>A-4</td>
<td>A-5</td>
<td>A-6</td>
<td>A-7</td>
<td>A-8</td>
<td>A-9</td>
<td>A-10</td>
</tr>
<tr class="line1">
<td>B-1</td>
<td>B-2</td>
<td>B-3</td>
<td>B-4</td>
<td>B-5</td>
<td>B-6</td>
<td>B-7</td>
<td>B-8</td>
<td>B-9</td>
<td>B-10</td>
</tr>
</table>
<button type="button">変身!</button>

この回答への補足

ここに書きたかったのですがお礼のところにいろいろ書いてしまいました。すみません。

補足日時:2012/09/27 13:18
    • good
    • 0
この回答へのお礼

<html>
<head>
<title></title>
<script type="text/javascript">
$().ready ( function() {
$('button').click ( function() { // 削除A
var $table = $('table');
var tdSize = $table.find('td').length / 2;
var tr1 = '<tr class="line0">';
var tr2 = '<tr class="line1">';
var html = '';
for ( var i = 0; i < tdSize; i ++ ) {
var $td1 = $table.find('tr:eq(0) td:eq(' + i + ')');
var $td2 = $table.find('tr:eq(1) td:eq(' + i + ')');
if ( i > 0 && i % 5 === 0 ) {
html += tr1 + '</tr>' + tr2 + '</tr>';
tr1 = '<tr class="line0">';
tr2 = '<tr class="line1">';
}
tr1 += '<td>' + $td1.html() + '</td>';
tr2 += '<td>' + $td2.html() + '</td>';
}
for ( i = 0; i < tdSize % 5-1; i ++ ) {
tr1 += '<td></td>';
tr2 += '<td></td>';
}
html += tr1 + '</tr>' + tr2 + '</tr>';
$('table').html ( $('<table/>').html ( html ) );
});//削除B
});
</script>
</head>

<table>
<tr class="line0">
<td>A-1</td>
<td>A-2</td>
<td>A-3</td>
<td>A-4</td>
<td>A-5</td>
<td>A-6</td>
<td>A-7</td>
<td>A-8</td>
<td>A-9</td>
<td>A-10</td>
</tr>
<tr class="line1">
<td>B-1</td>
<td>B-2</td>
<td>B-3</td>
<td>B-4</td>
<td>B-5</td>
<td>B-6</td>
<td>B-7</td>
<td>B-8</td>
<td>B-9</td>
<td>B-10</td>
</tr>
</table>
<button type="button">変身!</button>
</body>
</html>

このように書いてみましたが思うとおりにならなかったです。
何か間違っているのでしょうか。

丁寧なご回答まことにありがとうございます。

お礼日時:2012/09/27 13:04

結論から言うと不可能です。


表は、あくまで二次元データーで縦に並ぶ項目、横に並ぶ項目はそれぞれ関連があるものだからです。よって本来の方法はセルの横幅を固定せずに表全体を縦に伸ばす---セルが縦長になるようにすべきです。
 これは大原則です。スタイルシートでtable{width:100%;}とするしかない・・
★11 表 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )

 このデータを表でないものでマークアップすれば、よいでしょう。たとえば
<ul class="dta">
 <li>
   <ul>
     <li>なんたらかんたら</li>
     <li>データ</li>
   </ul>
 </li>
 <li>
   <ul>
     <li>なんたらかんたら</li>
     <li>データ</li>
   </ul>
 </li>
 <li>
   <ul>
     <li>なんたらかんたら</li>
     <li>データ</li>
   </ul>
 </li>
</ul>
とマークアップして、それぞれの項目をfloatで並べればよいでしょう。
    • good
    • 0
この回答へのお礼

ジャバスクリプトのDOMとかいうものでできるようなことを検索にて
見つけましたが、それがわからない状態です。
回答ありがとうございます。

お礼日時:2012/09/27 13:05

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