2011-09-08 7 views
7

次の2行をテーブルのように並べることはできますか?最初の行はh2です。これはタイトルであり、残りはリストであるためです。最初の列はかなり広いはずですが、残りはテキスト内の幅と同じにすることができます。列はdivの幅を満たさなければなりません。表のようにCSSと整列しますか?

<div> 
<h2 class="header1"> 
<span class="span1">one</span> 
<span class="span2">two</span> 
<span class="span3">three</span> 
<span class="span4">four</span> 
</h2> 
<ul><li> 
<span class="span5">five</span> 
<span class="span6">six</span> 
<span class="span7">seven</span> 
<span class="span8">eight</span> 
</li></ul> 
</div> 
div {width: 500px;} 
h2 span, li span {float: left; width: auto; white-space: nowrap;} 

例:

Example

+0

これは、CSS2の 'ディスプレイで行うことができます:table'や関連規則、IE8まではIE以外のすべてのブラウザでサポートされています。しかし、私はこれをやりたがっている実際の理由に興味があります。 – ThatMatthew

+0

@ ThatMatthew 1.)多くの人々(残念なことに)は引き続きIE7を使用しており、これらのCSS2プロパティはサポートされていません。 [w3schools](http://www3.w3schools.com/cssref/pr_class_display.asp)2)データを抽出するのが難しいため、W3Cでは古い方法でテーブルを作成することはお勧めできません。 [W3C](http://www.w3.org/TR/html5/tabular-data.html) –

+0

_layout_テーブルが避けられるべきものであることを知りたいだけです。データテーブルがある場合は、 'table'タグを使うべきです。 – ThatMatthew

答えて

11

HTML

<div class="table-like"> 
    <div> 
    <span>one</span> 
    <span>two</span> 
    <span>three</span> 
    <span>four</span> 
    </div> 
    <div> 
    <span>five</span> 
    <span>six</span> 
    <span>seven</span> 
    <span>eight</span> 
    </div> 
</div> 

CSS

正直なところ
.table-like { 
    display: table; 
    width: 500px; 
} 

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

.table-like div span { 
    display: table-cell; 
} 

/* add borders */ 
.table-like, 
.table-like div span { 
    border: 1px solid black; 
} 

/* bold on 1st row */ 
.table-like div:nth-child(1) { 
    font-weight: bold; 
} 

jsFiddle Demo

+0

しかし、IE7はこの方法をサポートしていないことに注意してください。 –

3

、あなたは、表形式のデータを表示するテーブルを使用しようとしている場合。テーブルには何も問題はありません。テーブル以外のコンテンツを配置する場合にのみ使用します。表の書式設定のヘルプが必要な場合は、質問を編集してください。

+1

セマンティックマークアップのために表を使用せずに表形式の整列が必要な場合があります。だから私はこの答えを削除します。 – Marko

+2

私はその結論に素早く飛びつくことはありません。表のないサイトを自慢する以外の理由がなくても、表のないマークアップを使用しないようにするためには、人々が長引くことは珍しいことではありません。 – Wex

+0

@マルコそれは正しいです。それはテーブルのような形式のページのほんの一部ですので、テーブルを使用しないようにしたいと思います。 –

0

は、ディスプレイを使用してみてください:インラインブロック:

h2{display: inline-block; margin:0 padding:0; min-width: 300px}/*use min-width what you want*/ 
ul, ul li{display: inline-block; margin:0; padding: 0;} 
関連する問題