2017-07-12 7 views
1

フレックスボックスを使用してテーブルと同じ動作をさせようとしています。例:CSS flexはテーブルと同じ動作をします

<div> 
    <div class="flex row"> 
     <p>Short text</p> 
     <p>Text </p> 
    </div> 

    <div class="flex row"> 
     <p>Very long text</p> 
     <p>Text </p> 
    </div> 
</div> 

行をテーブルと同じ縦線にするにはどうすればよいですか?

だから、基本的に私は、フレキシボックスあなたのHTML構造与えられたフレキシボックスを使用していない

<table> 
    <tr> 
     <td>Short text</td> 
     <td>Text</td> 
    </tr> 
    <tr> 
     <td>Very long text</td> 
     <td>Text</td> 
    </tr> 
</table> 
+0

あなたがすることはできません。 Flexboxはそれほど機能しません。代わりにCSSテーブルを使用してください。 –

+0

これは事実ですか? – ng2user

+0

はい...そうです。あなたがテーブルの振る舞いを望むなら、CSSテーブルレイアウトを使います。 –

答えて

2

と次のような結果を達成しようとしています。

divを使用してテーブル動作を使用する場合は、CSS Tablesを使用します。

あなたのための比較。

table { 
 
    border-collapse: collapse; 
 
    margin-bottom: 1em; 
 
} 
 

 
td { 
 
    border: 1px solid grey; 
 
    padding: 1em; 
 
    background: lightgreen; 
 
} 
 

 
.table { 
 
    display: inline-table; 
 
} 
 

 
.row { 
 
    display: table-row; 
 
} 
 

 
p { 
 
    display: table-cell; 
 
    padding: 1em; 
 
    border: 1px solid grey; 
 
    background: lightblue; 
 
}
<table> 
 
    <tr> 
 
    <td>Short text</td> 
 
    <td>Text</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Very long text</td> 
 
    <td>Text</td> 
 
    </tr> 
 
</table> 
 

 
<div class="table"> 
 
    <div class="row"> 
 
    <p>Short text</p> 
 
    <p>Text </p> 
 
    </div> 
 

 
    <div class="row"> 
 
    <p>Very long text</p> 
 
    <p>Text </p> 
 
    </div> 
 

 
    <div>

+0

2つの違いは何ですか?マークアップのみ? – ng2user

+0

本質的にはい。 –

+0

フレックスボックスを使用して同じ効果を得ることはできませんか? – ng2user

0

.row { 
 
    display: flex; 
 
    justify-content: space-around; 
 
    align-items: center; 
 
} 
 

 
.row p { width: 100% }
<div class="table"> 
 
    <div class="flex row"> 
 
    <p>Short text</p> 
 
    <p>Text </p> 
 
    </div> 
 
    <div class="flex row"> 
 
    <p>Very long text</p> 
 
    <p>Text </p> 
 
    </div> 
 
</div>

+0

テーブルと同じ結果にはなりません。線は直線ではありません。 – ng2user

+0

段落のコードを調整しました – Gerard

+0

ソリューションの幅を定義する必要があります。テーブルソリューションでは、それだけで動作します。 – ng2user

関連する問題