2016-11-08 15 views
2

セット幅とその子の幅を取ると私はそうのようにそのflex-basis幅を設定します。メイク祖先フレキシボックスのdivタグは、私はフレックスディスプレイを使用して入力要素を持っている

.flex-row input { flex: 0 1 450px; } 

flex-row divが内部に収容されていますflex-container divの

flex-rowは、入力に必要な幅だけを使いたいと思っています。

flex-containerdisplay: flexこれは100%の幅を占めます。

display: inline-flexと入力すると入力が圧縮され、450pxよりもはるかに小さくなります。

私は実際にはflex-containerの幅を気にしませんが、子供の幅をもうまく利用するのはいいですが、どうすればいいですかflex-rowは入力と同じ幅を持ちます十分な余裕があれば、450px)?

.flex-container { 
 
    display: flex; 
 
} 
 
.flex-row { 
 
    display: flex; 
 
    flex: 1; 
 
    align-items: center; 
 
    justify-content: center; 
 
} 
 
.flex-row input { 
 
    flex: 0 1 450px; 
 
}
<div class="flex-container"> 
 
    <div class="flex-row"> 
 
    <input type="text" name="query" class="searchbar" /> 
 
    </div> 
 
</div>

hereフィドル例です。

+1

あなたは 'flex-row'を450pxにして、子入力に' flex:1'を単に書き込むことを考えましたか? https://jsfiddle.net/5wksaj72/2/ –

+0

私はしましたが、私のHTMLはこれより少し複雑です。私は、入力要素だけでなく、複数のフレックス行の中に複数のオブジェクトを持っています。 – user3494047

+0

@Michael_B多分私の質問を更新する必要がありますが、[ここ](https://jsfiddle.net/5wksaj72/3/)は私の状況がどうなっているかをより正確に把握していますが、[this](https:// jsfiddle.net/5wksaj72/4/)は – user3494047

答えて

1

flex-row入力と同じflexプロパティをflex-rowに追加します。

.flex-row{ 
    display: flex; 
    flex: 0 1 450px; 
    align-items: center; 
    justify-content: center; 
} 

あなたが行は次のようにフレックスコンテナにプロパティを整列を追加し、正当化するだけでなく中央に配置したい場合。

.flex-container{ 
    display: flex; 
    align-items: center; 
    justify-content: center; 
} 
+0

のように動作するので、入力の代わりにフレックスベースにフレックスベースを置くことをお勧めしますか? – user3494047

+1

はい。これは、行と入力の両方を制御して、そこに多くのスペースがあっても幅を450pxに保つ唯一の方法です。私はこの答えがあなたが尋ねたことに役立つと信じていますそうでなければ、私は理解できなかったかもしれません。私に知らせて、私は助けることができます。 –

関連する問題