Flexboxの子要素の高さがCSSで垂直方向に伸びないようにする方法
フレックスボックスがあるとします 内部にボタンが付いたコンテナ:
<div class="container">
<button class="button">Button</button>
</div>
ボタン(子要素)をjustify-content
と水平方向に中央揃えしようとする場合 このようなプロパティ:
.container {
height: 300px;
display: flex;
justify-content: center;
}
次に、ボタン(子要素)の高さは、親要素の高さ(この場合は300px
)に合わせて拡張されます。 ):
これはおそらくあなたが望むものではありません!
フレックスアイテムを防ぐには、いくつかの方法があります。 (フレックスコンテナの子供)垂直に伸びないようにします。
フレックスアイテムをalign-items
で垂直方向に中央揃えにする場合 プロパティ、ストレッチは自動的に消えます:
.container {
height: 300px;
display: flex;
justify-content: center;
/*Vertical center alignment:*/
align-items: center;
}
しかし、フレックスコンテナのフレックスアイテムを垂直に配置したくない場合はどうなりますか?
次に、CSSのheight
を使用できます プロパティのmax-content
フレックスアイテムの値:
.button {
height: max-content;
}
これで、フレックスアイテムの高さは、コンテンツの高さによって決まります。このボタンの例では、テキストは14px(+ボタンのデフォルトのパディング)です:
align-self
を使用することもできます フレックスアイテムのプロパティ:
.button {
align-self: flex-start;
}
これにより、max-content
を使用した場合と同じ結果が得られます。 単純なユースケースですが、特定のコンテキストによって異なります(両方を試してください)。
-
CSSを使用してブラウザウィンドウの高さ全体に合うように要素を拡大するにはどうすればよいですか?
CSSを使用してブラウザウィンドウの高さ全体に合わせて要素を拡大するには、コードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <title>Page Title</title> <style> *{ box-sizing: border-box; } html, body { height: 100%; &nbs
-
CSSを使用した子要素の選択
CSS子コンビネータは、親要素のすべての子要素を選択するために使用されます。 CSS子コンビネータの構文は次のとおりです。 セレクター{属性:/*値*/} CSS子孫コンビネータは、親要素のすべての子孫を選択するために使用されます CSS子孫コンビネータの構文は次のとおりです セレクターセレクター{属性:/*値*/} 例 次の例は、CSSの子と子孫のコンビネータを示しています。 * {text-align:center;ボーダー:10pxグルーブトマト;} ::first-line {box-shadow:inset 0 0 7px cornflowerblue;}