2016-10-19 12 views
31

私はコンテナ<div>display: flexを持っています。それは子供が<a>です。フレックスアイテムを親コンテナの幅ではなくコンテンツの幅にする

子供を「インライン」に見えるようにするにはどうすればよいですか?

具体的には、子の幅を内容で決めることができますが、親の幅まで拡大することはできません。私が試した何

私はdisplay: inline-flexに子を設定し、それはまだ完全な幅を取り上げました。他のすべての表示プロパティも試しましたが、何も効果がありませんでした。

例:

.container { 
 
    background: red; 
 
    height: 200px; 
 
    flex-direction: column; 
 
    padding: 10px; 
 
    display: flex; 
 
} 
 
a { 
 
    display: inline-flex; 
 
    padding: 10px 40px; 
 
    background: pink; 
 
}
<div class="container"> 
 
    <a href="#">Test</a> 
 
</div>

http://codepen.io/donpinkus/pen/YGRxRY

答えて

63

利用フレックス項目のコンテナ上align-items: flex-start、またはalign-self: flex-start

display: inline-flexの必要はありません。


フレックスコンテナの初期設定はalign-items: stretchです。これは、可撓性のアイテムが、交差軸に沿って容器の全長をカバーするように拡張することを意味する。そのalign-selfフレックスのアイテムに適用される以外align-itemsフレックスコンテナに適用されながら

align-selfプロパティは、align-itemsと同じことを行います。

デフォルトでは、align-selfalign-itemsの値を継承します。

コンテナはflex-direction: columnなので、横軸は水平で、align-items: stretchはできるだけ子要素の幅を広げています。

コンテナ(すべてのフレックスアイテムに継承されています)またはalign-self: flex-start(単一アイテムに限定されています)のデフォルト値をalign-items: flex-startで上書きできます。

+1

ありがとうございました。ありがとうございました。 –

+1

これは本当に役立つ説明です。ありがとう。 – whyAto8

+1

アハの瞬間がここにありました。 – chh

関連する問題