2016-08-25 7 views
1

最初に、ここにフィドルがあります:https://jsfiddle.net/u8v3rgyt/1/CSS:動的な幅のコンテナ内で幅を適用する方法は?

基本的なシナリオは次のとおりです。長さが異なるテキストがあります。このテキストの下には、(EDIT:のさまざまな数の)ボタンがあります。これらのボタンにもさまざまなテキストがあります。私が望むのは、テキストが全体の幅を制御し、ボタンの列の幅/ボタンの幅をそれに応じて調整させることです。つまり、テキストの2つの異なるサイズのために、私は次のことを達成しようとしている:

// Short text 
La la la la 
[Button 1 
    text] 
[Button 2 
    with long 
    text] 

// Longer text 
La la la la la la la la la la 
[Button 1 text] 
[Button 2 with long text] 

が、私は得る:

// Short text 
La la la la 
[Button 1 text] 
[Button 2 with long text] 

「私は近いんだように私は感じるが、私ができますボタンコンテナに正しい幅を持たせてください(ボタンの幅を制限することはできません)。そうではなく、テキストに固定幅を置く必要があります。テキストに基づいてサイズを調整する必要があるため、これは機能しません。

ご協力いただければ幸いです。

+0

あなたはボタンが最長と同じ幅になりたいですボタン?私は非常にcunfusedです –

+0

はい、申し訳ありません(私は、同じ長さのボタンの有無にかかわらず、動作するように全体的なパターンを取得することはできませんが)。 – machineghost

答えて

1

私が理解しているように、テキストがボタンの配置されている領域の幅を決める必要があります。 CSS3フレックスボックスモデルを使用して、あなたはこれらの線に沿って何かをすることができます:

See this fiddle

HTML

<div class="container"> 
    <p>Some text blah blah blah, blah blah blah</p> 
    <div class="inner"> 
    <button>Button 1</button> 
    <button>Button 2</button> 
    </div> 
</div> 

CSS

.container { 
    display: inline-block; 
    border: 1px solid red; 
    margin-bottom: 24px; 
} 

.inner { 
    display: flex; 
    flex-wrap: wrap; 
} 

button { 
    flex-grow: 1; 
} 
+0

偉大なアイデア...しかし残念なことにこの場合、ボタンの数もダイヤミックです:( – machineghost

+0

私はフィドル/アンサーを編集してボタンの数に依存しなくなりました。再度確認してください – alberto2000

+0

私も聞いていませんでした'flex'や' flex-grow'のcaniuse.comはサポートされていると言っているので、今夜は解決策を試す時間がありませんが、すぐに試してみるつもりです – machineghost

関連する問題