2016-12-20 5 views
1

私はフレキシボックスを使用して垂直方向に整列した列を実装するには、以下の使用しています:きれい...上記の作品をフレックスボックスを使用して、垂直に整列した列とゼブラシェーディングで表形式を実現するにはどうすればよいですか?

jsFiddle

.container { 
 
    display: flex; 
 
    flex-direction: row; 
 
} 
 
.column { 
 
    display: flex; 
 
    flex-direction: column; 
 
    margin: 0.3em; 
 
} 
 
.column > div:first-child { 
 
    font-weight: bold; 
 
}
<div class='container'> 
 
    <div class='column'> 
 
    <div>food</div> 
 
    <div>beans</div> 
 
    <div>macademia nuts salted and coated with caramel</div>   
 
    </div> 
 
    <div class='column'> 
 
    <div>comments</div> 
 
    <div>beans</div> 
 
    <div>excellent nutrition</div>     
 
    </div> 
 
    <div class='column'> 
 
    <div>price</div> 
 
    <div>3$</div> 
 
    <div>20$</div>     
 
    </div>    
 
</div>

を私はゼブラシェーディングを追加しようとすると、色間のマージンは、in this jsfiddleのように表示されます。

フレックスボックスを使用して、垂直に整列した列とゼブラシェーディングで表形式を実現するにはどうすればよいですか?

+0

https://jsfiddle.net/kbzv9efv/2/?さらにいくつかの枠線を追加します。または、表形式の表示ではなく、display:tableを使用しますか? :) – sinisake

+0

私はあなたがそれを愛するかどうかはわかりませんが、あなたはブートストラップテーブルで同じことを達成することができます –

答えて

1

marginの代わりにpaddingを使用してください。

は、内側の列にパディングを適用します。

/* KEY RULE */ 
 
.column + .column > div { 
 
    padding-left: 2em; 
 
} 
 

 
/* ORIGINAL CODE */ 
 
.container { 
 
    display: flex; 
 
    flex-direction: row; 
 
} 
 
.column { 
 
    display: flex; 
 
    flex-direction: column; 
 
} 
 
.column > div:first-child { 
 
    font-weight: bold; 
 
} 
 
.column > div:nth-child(odd) { 
 
    background: #dddddd; 
 
}
<div class='container'> 
 
    <div class='column'> 
 
    <div>food</div> 
 
    <div>beans</div> 
 
    <div>macademia nuts salted and coated with caramel</div> 
 
    </div> 
 
    <div class='column'> 
 
    <div>comments</div> 
 
    <div>beans</div> 
 
    <div>excellent nutrition</div> 
 
    </div> 
 
    <div class='column'> 
 
    <div>price</div> 
 
    <div>3$</div> 
 
    <div>20$</div> 
 
    </div> 
 
</div>

関連する問題