HTMLで垂直テーブルを作成するにはどうすればよいですか?垂直とは、行が垂直で、左側にテーブルヘッダーがあることを意味します。
<tr>
を使用して、通常のテーブルのようにこれらの行(この場合は垂直)にアクセスできるようにする方法も必要です。これは、1つの行(行Aなど)のデータを動的に取得して、テーブルに挿入するためです。 angularJSを使用してDOM操作を回避しているため、JavaScriptによる複雑なDOM操作を探していません。
行の最初のセルとして<th>
を使用できます。これがフィドルです: http://jsfiddle.net/w5nWG/
@vishesh DOMの準備ができた後でテーブルを転置したいですか?これを試してください http://Gist.github.com/pgaertig/2376975
$(function() {
var t = $('#thetable tbody').eq(0);
var r = t.find('tr');
var cols= r.length;
var rows= r.eq(0).find('td').length;
var cell, next, tem, i = 0;
var tb= $('<tbody></tbody>');
while(i<rows){
cell= 0;
tem= $('<tr></tr>');
while(cell<cols){
next= r.eq(cell++).find('td').eq(0);
tem.append(next);
}
tb.append(tem);
++i;
}
$('#thetable').append(tb);
$('#thetable').show();
}
お望みならば <tr>
行ではなく列を表示するには、この簡単なCSSを試してください
tr { display: block; float: left; }
th, td { display: block; }
これにより、単一行のセルを操作する限り、必要なものが表示されます(テーブルの動作は削除されます)。 フィドル を参照してください。
David Bushellがソリューションと実装をここに提供しています: http://dbushell.com/demos/tables/rt_05-01-12.html
コツは
display: inline-block;
テーブルの行とwhite-space: nowrap;
テーブル本体。
私の知る限り、これを切り替える魔法の解決策はありません。回転(90度)に関しては、それはおそらくテーブル全体を横に向けるでしょう、あなたが90度回転した場合の紙のシートがどのように見えるかのように、それはあなたが望むものではありません(私は思いますか?)。
これが可能(かつ現実的)な場合は、HTML自体を変更することをお勧めします。
コメントに示されているように、ここでは提案がないため、jQueryを使用した基本的なjavascriptの代替案(これが目的のものではない場合でも)を使用します。私はあなたの経験を知らずに、すべてのコメントに時間をかけて、コードが何をしているかを確実に理解できるようにしました。
// Change the selector to suit your needs
$('table').each(function(){
var table = $(this), // Reference each table in the page
header = $('thead', table), // Reference the table head
headings = []; // Set an array for each column
// If the table doesn't have a header, use it's footer for column titles
if(!header.length)
header = $('tfoot', table);
// If there's no header nor footer, skip to the next table
if(!header.length)
continue;
// Loop each heading to get the header value
$('th', header).each(function(){
var heading = $(this).html(); // Each heading value content, including any HTML; use .text() to use the text only
headings.Push(heading); // Add heading value to array
});
// Make sure the content is wrapped in a tbody element for proper syntax
if(!$('tbody', table).length)
table.wrapInner('<tbody></tbody>');
// Set counter to reference the heading in the headings array
var x = 0;
// Loop through each row in the table
$('tbody tr').each(function(){
var row = $(this),
label = headings[x];
// Add the heading to the row, as a <th> for visual cues (default: bold)
row.prepend('<th>'+label+'</th>')
// Move to the next value in the headings value
x++;
});
});
<table>
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
</table>
table { border-collapse: collapse; }
table tr { display: block; float: left; }
table tr tr{ display: block; float: left; }
table th, table td { display: block; border: none; }