サンプル:
div {
display: flex;
height: 200px;
background: tan;
}
span {
background: red;
}
<div>
<span>This is some text.</span>
</div>
2つの質問があります。
- なぜそれは基本的に起こるの
span
ですか? - フレックスコンテナ内の他のフレックスアイテムに影響を与えずに伸びないようにするための正しいアプローチは何ですか?
回答:
スパンの高さを伸ばしたくないですか?
コンテナの高さ全体に伸びないように、1つまたは複数のフレックスアイテムに影響を与える可能性があります。
コンテナのすべてのフレックスアイテムに影響を与えるには、次を選択します。
に設定align-items: flex-start;
する必要がdiv
あり、このコンテナのすべてのフレックスアイテムはコンテンツの高さを取得します。
div {
align-items: flex-start;
background: tan;
display: flex;
height: 200px;
}
span {
background: red;
}
<div>
<span>This is some text.</span>
</div>
単一のフレックスアイテムのみに影響を与えるには、次を選択します。
コンテナ上の単一のフレックスアイテムをストレッチ解除する場合はalign-self: flex-start;
、このフレックスアイテムに設定する必要があります。コンテナの他のすべてのフレックスアイテムは影響を受けません。
div {
display: flex;
height: 200px;
background: tan;
}
span.only {
background: red;
align-self:flex-start;
}
span {
background:green;
}
<div>
<span class="only">This is some text.</span>
<span>This is more text.</span>
</div>
なぜこれが起こっているのspan
ですか?
プロパティのデフォルト値align-items
はstretch
です。これが、span
の高さを塗りつぶす理由div
です。
違いbaseline
とflex-start
?
フレックスアイテムにフォントサイズの異なるテキストがある場合は、最初の行のベースラインを使用してフレックスアイテムを垂直に配置できます。フォントサイズが小さいフレックスアイテムは、コンテナと上部のコンテナの間にいくらかのスペースがあります。flex-start
フレックスを使用すると、アイテムはコンテナの上部に設定されます(スペースなし)。
div {
align-items: baseline;
background: tan;
display: flex;
height: 200px;
}
span {
background: red;
}
span.fontsize {
font-size:2em;
}
<div>
<span class="fontsize">This is some text.</span>
<span>This is more text.</span>
</div>
baseline
との違いについて詳しくは、flex-start
こちらをご覧ください。
フレックススタートとベースラインの違いは何ですか?
baseline
とのflex-start
値の違いも教えていただければ幸いです。
align-items: center;
:)
baseline
とflex-start
値の違いは何ですか?それらの結果は同じようです。それらは状況によって異なる可能性がありますか?