CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

Flexboxの子要素の高さがCSSで垂直方向に伸びないようにする方法

フレックスボックスがあるとします 内部にボタンが付いたコンテナ:

<div class="container">
  <button class="button">Button</button>
</div>

ボタン(子要素)をjustify-contentと水平方向に中央揃えしようとする場合 このようなプロパティ:

.container {
  height: 300px;
  display: flex;
  justify-content: center;
}

次に、ボタン(子要素)の高さは、親要素の高さ(この場合は300px)に合わせて拡張されます。 ):

Flexboxの子要素の高さがCSSで垂直方向に伸びないようにする方法

これはおそらくあなたが望むものではありません!

フレックスアイテムを防ぐには、いくつかの方法があります。 (フレックスコンテナの子供)垂直に伸びないようにします。

フレックスアイテムをalign-itemsで垂直方向に中央揃えにする場合 プロパティ、ストレッチは自動的に消えます:

.container {
  height: 300px;
  display: flex;
  justify-content: center;

  /*Vertical center alignment:*/
  align-items: center;
}
Flexboxの子要素の高さがCSSで垂直方向に伸びないようにする方法

しかし、フレックスコンテナのフレックスアイテムを垂直に配置したくない場合はどうなりますか?

次に、CSSのheightを使用できます プロパティのmax-content フレックスアイテムの値:

.button {
  height: max-content;
}
Flexboxの子要素の高さがCSSで垂直方向に伸びないようにする方法

これで、フレックスアイテムの高さは、コンテンツの高さによって決まります。このボタンの例では、テキストは14px(+ボタンのデフォルトのパディング)です:

align-selfを使用することもできます フレックスアイテムのプロパティ:

.button {
  align-self: flex-start;
}

これにより、max-contentを使用した場合と同じ結果が得られます。 単純なユースケースですが、特定のコンテキストによって異なります(両方を試してください)。


  1. CSSを使用してブラウザウィンドウの高さ全体に合うように要素を拡大するにはどうすればよいですか?

    CSSを使用してブラウザウィンドウの高さ全体に合わせて要素を拡大するには、コードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <title>Page Title</title> <style>    *{       box-sizing: border-box;    }    html, body {       height: 100%;   &nbs

  2. CSSを使用した子要素の選択

    CSS子コンビネータは、親要素のすべての子要素を選択するために使用されます。 CSS子コンビネータの構文は次のとおりです。 セレクター{属性:/*値*/} CSS子孫コンビネータは、親要素のすべての子孫を選択するために使用されます CSS子孫コンビネータの構文は次のとおりです セレクターセレクター{属性:/*値*/} 例 次の例は、CSSの子と子孫のコンビネータを示しています。 * {text-align:center;ボーダー:10pxグルーブトマト;} ::first-line {box-shadow:inset 0 0 7px cornflowerblue;}