2016-03-23 5 views
2

I次のマークアップがあります。以下のCSSでテーブルセルのテーブルの幅の100%を境にします

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

を:

.table { 
    display: table; 
    border-collapse: collapse; 
    width: 100% 
} 

.row { 
    display: table-row; 
    border-bottom: 1px solid black; 
} 

.cell { 
    display: table-cell; 
    width: 50%; 
} 

問題は、テーブル行のボーダー含まれるテーブルセルの幅のみをカバーします。私は、テーブルのセルの幅を変更したり、別のテーブルセルを追加したりせずに、他のすべてのテーブルの行と同じように、最後のテーブル行の境界幅を同じにしたい(もちろん水平)。

はここでフィドルです:https://jsfiddle.net/tgry53ss/

これを達成するための方法上の任意のアイデア?

+0

あなたは結果にあなたを得ることはありません最後のセルの幅を変更したくない場合や、別のセルを追加したくない場合に必要です。なぜここで 'table'を使用しないのですか?あなたが表形式のデータを表示しようとしているようです。 –

+0

Firefoxはあなたが好きなようにそれを行います。 – Oriol

答えて

1

CSSにはrowspan/colspanが存在しないため、代わりにflexboxを使用して、必要な結果を得ることができます。それはまた、colspanのように、唯一のセルが幅全体を利用できるようにすることもできます。

.row { 
 
    display: flex; 
 
    border-bottom: 1px solid; 
 
} 
 
.cell { 
 
    flex: 1; 
 
}
<div class="table"> 
 
    <div class="row"> 
 
    <div class="cell">1</div> 
 
    <div class="cell">2</div> 
 
    </div> 
 
    <div class="row"> 
 
    <div class="cell">3</div> 
 
    <div class="cell">4</div> 
 
    </div> 
 
    <div class="row"> 
 
    <div class="cell">5</div> 
 
    </div> 
 
</div>

編集:あなたがこれを行う、全体の幅を取るためにのみセルをたくない場合は

.row { 
    display: flex; 
    border-bottom: 1px solid; 
} 
.cell { 
    flex: 0 0 50%; 
} 
4

は、あなたのCSSにこれを追加します。

.row:last-child::after { 
    content:' '; 
} 

それは実際には1つを作成せずに別のセルとその下のボーダーをレンダリングする方法。

fiddle

+0

ありがとう!これは実際には動作しますが、私の場合はPanglossの答えが好きです。なぜなら、それが必要でない場合は、後に追加しないからです(実際に最後の行に2つのセルがある場合)。しかし、あなたのサポートに感謝します! – biedert

+0

スペースは必要ありません。 'display:table-cell'を追加すると、生成されたテーブルセルをスタイルすることができます。そうでない場合は、匿名の親要素になります。 – Oriol

-1

私はこれに対処する一つの方法は、その幅を上書きするために、インラインスタイルを使用する、あなたは最後のものを除いて、各列に2つのセルを持っていたので、あなたは50%にセル幅を設定すると仮定しています:

<div class="cell" style="width:100%"> 
    5 
</div> 
+0

ありがとうございましたが、私が言及したように、私はセルのwithと変更したくありません。 – biedert

関連する問題