2012-08-13 10 views
10

私はプログラマです。私は目の中にテーブルのように見えるものを追加し、htmlテーブルを使用する必要があるときはいつも私の仲間のウェブデザイナー。 divの共通のhtml div構造を構築すると、テーブルのようなものが必要なときにいつでもhtmlをコピーしてコピーすることができます。したがって、この表のHTML構造htmlテーブルの代わりにdivを使用しますが、テーブルは簡単です

<table> 
<tr><td></td><td></td></tr> 
<tr><td></td><td></td></tr> 
<tr><td></td><td></td></tr> 
</table> 

同様のdivの構造は何であるの場合の

答えて

15

CSS:

.table 
{ 
    display:table; 
} 

.table-row 
{ 
    display:table-row; 
} 

.table-cell 
{ 
    display:table-cell; 
} 

HTML:

<div class="table"> 
    <div class="table-row"> 
     <div class="table-cell">1</div> 
     <div class="table-cell">2</div> 
    </div> 
    <div class="table-row"> 
     <div class="table-cell">3</div> 
     <div class="table-cell">4</div> 
    </div> 
</div> 

Demo

注こと,table-rowおよびtable-cell IE7以下では表示値がサポートされていないため、IE8には!DOCTYPEが必要です。

また、テーブルは、クラスを持つdivの束に比べてより意味的な意味をマークアップするので、表形式のデータを表すために使用する必要があります。レイアウトの目的でテーブルを使用しないでください。

+0

Beutifull構造と私は、私は、CSSのすべての時間を編集することなく、より多くの列と行を追加することができます参照してくださいテストとして..あなたがしている場合は、完璧なamuura – themis

+7

に見えますテーブルの構造とレイアウト全体を完全にコピーしようとすると、ほとんどの場合、あなたがテーブルの後に実際に何をしているのかと思います。特にクラス "テーブル"、 "tr"、 "td"などの名前を付けている場合は(特に正確ではないがかなり)。しかし、私は、 'display:table'は、スタイル付けされているものが実際には意味的にテーブルではない場合に非常に有用であることに同意します。しかし、 'table'、' tr'、 'td'要素から' div.table'、 'div.tr'、' div.td'要素に切り替えるのは私にはほとんど無意味です。 – powerbuoy

+2

ディスプレイ:table-cell; IE7とIE8はIE8でdoctypeが必要ですか? doctypeはどうですか? – themis

3

私は簡単にするためにインラインスタイルを使用しますが、実際のプロジェクトでそれらをお勧めしません:

<div style="overflow: hidden"> 
    <div style="width: 50%; float: left"></div> 
    <div style="width: 50%; float: right"></div> 
    <div style="width: 50%; clear: both; float: left"></div> 
    <div style="width: 50%; float: right"></div> 
</div> 

これは、多くのソリューションの1つです。

overflow: hiddenビットは、コンテナdivを「自己クリア」するために使用されます(divは浮動小数点を囲みません)。 3番目のdivが両方をクリアする理由は、それがそれ自身の行にレンダリングされるためです。

編集:divは50%幅なので、他のdivをすべて右に浮かべる必要はありません(左に浮かべるとすべて同じに見えます)が、divの間に余白が必要な場合は幅を変更するだけで、他のdivはすべて右に揃えられます(すべてが左に浮動する場合はそうではありません)。

編集:実際に表のデータをマークアップしている場合(いくつかのコメントが示唆しているように)、テーブル要素に固執してください。それがそこにあるのです。 は絶対にでなければなりません。tabletrtdからdivに同じ名前のクラスがあります。あなたが表示tabletable-row、およびtable-cellを使用したいと思う

8

表形式のデータにHTML table要素を使用している場合は、仲間のウェブデザイナーを元気に戻すことをおすすめします。

表形式のデータを表示するときにHTML tableを使用するには、HTML表が悪いことではありません。&をお薦めします。

http://webdesign.about.com/od/tables/a/aa122605.htm

+0

私は私の防衛のためにこれを読むでしょう。それを得ました.. – themis

+0

ああ、絶対に、もしそれが表形式のデータであれば、あなたは間違いなく表を使用しなければなりません。 – powerbuoy

+0

また、彼らは私がニュースレターを作成するときに、テーブルをエスケープしていますが、ウェブサイトの場合、htmlテーブルについては毛皮のような毛皮です。しかし、今あなたの意見が表示されます – themis

1

私が提案しpowerbuoyのようないくつかのレイアウトを使用することをお勧めしていますが、さまざまなシナリオで異なるサイズの構造に合うようになるでしょうので、あなたが設計レイアウトを集中するために、あなたのCSSでグリッドシステムを使用したい場合があります。

.left { float:left; } 
.right { float: right } 
.onetenth { width: 10%; } 
.onetwentieth { width: 5%; } 

のように...

私は、このアプローチは、より高い性能が得られ抽選であなたのスタイリングを削減するあなたを約束します。

参照:https://github.com/stubbornella/oocss/wiki/(オブジェクト指向CSS)

+0

がきれいに見えます。後で読むようにします。 Thanx again Mutu – themis

+1

ええ、問題ありません!その例が属するNicole Sullivanを探すべきです。 –

関連する問題