align-items
との違いを誰かに教えてもらえalign-content
ますか?
align-items
との違いを誰かに教えてもらえalign-content
ますか?
回答:
align-items
flex-box のプロパティは、主軸に沿った場合と同様に、フレックスコンテナー内のアイテムを交差軸に沿って配置しjustify-content
ます。(デフォルトでflex-direction: row
は、交差軸は垂直に対応し、主軸は水平に対応します。flex-direction: column
これらの2つはそれぞれ交換されます)。
これがどのようにalign-items:center
見えるかの例です:
ただしalign-content
、マルチラインフレキシブルボックス用です。アイテムが1行にある場合は効果がありません。それはその値に従って構造全体を整列させます。以下がその例ですalign-content: space-around;
。
そしてalign-content: space-around;
、align-items:center
ルックスの使い方は次のとおりです。
最初の行の3番目のボックスと他のすべてのボックスが、その行の垂直方向の中央に変更されることに注意してください。
ここにいくつかのコードペンリンクがあります:
http://codepen.io/asim-coder/pen/MKQWbb
http://codepen.io/asim-coder/pen/WrMNWR
ここだあなたはフレキシボックス内のほとんどすべてと遊ぶことができますショーや超クールなペンが。
align-*
プロパティも水平フレックスアイテムをシフトすることができます。それはに依存しますflex-direction
。stackoverflow.com/q/32551291/3597276
http://flexboxfroggy.com/の例は非常に便利です。
それはあなたに10-20分かかり、レベル21であなたはあなたの質問に対する答えを見つけるでしょう。それは言及しました:
align-contentは行間の間隔を決定し、align-items はアイテムがコンテナー内で全体としてどのように配置されるかを決定します。1行しかない場合、align-contentは効果がありません。
1 align-items
つ目は、1つの行のアイテムです。上の要素の単一の行のように、メイン軸、align-items
互いのそれぞれのこれらのアイテムを整列し、それは次の行からの新鮮な視点で開始します。
これalign-content
で、行内のアイテムには影響しませんが、行自体には影響します。したがって、align-content
行とフレックスコンテナーを基準にして行を揃えようとします。
このフィドルを確認してください:https://jsfiddle.net/htym5zkn/8/
私も同じように混乱しました。上記の答えの多くに基づいていじくり回した後、ようやく違いがわかります。私の控えめな意見では、この区別は、次の2つの条件を満たすフレックスコンテナーで最もよく示されます。
min-height: 60rem
可能性があります条件1はcontent
、親コンテナーとの関係を理解するのに役立ちます。コンテンツがコンテナと同じ高さになると、からの配置効果を確認できなくなりますalign-content
。交差軸に沿って余分なスペースがある場合にのみ、その効果がわかります。これは、コンテンツを親コンテナーの境界を基準に配置します。
条件2は、次の効果を視覚化するのに役立ちますalign-items
:アイテムを互いに相対的に配置します。
次にコード例を示します。原材料は、Wes BosのCSSグリッドチュートリアル(21. FlexboxとCSSグリッド)から取得
<div class="flex-container">
<div class="item">Short</div>
<div class="item">Longerrrrrrrrrrrrrr</div>
<div class="item">💩</div>
<div class="item" id="tall">This is Many Words</div>
<div class="item">Lorem, ipsum.</div>
<div class="item">10</div>
<div class="item">Snickers</div>
<div class="item">Wes Is Cool</div>
<div class="item">Short</div>
</div>
.flex-container {
display: flex;
/*dictates a min-height*/
min-height: 60rem;
flex-flow: row wrap;
border: 5px solid white;
justify-content: center;
align-items: center;
align-content: flex-start;
}
#tall {
/*intentionally made tall*/
min-height: 30rem;
}
.item {
margin: 10px;
max-height: 10rem;
}
例1:コンテンツがコンテナと揃うようにビューポートを狭めましょう。これは、align-content: flex-start;
コンテンツブロック全体がコンテナ内にぴったり収まるため、影響がない場合です(再配置する余地はありません!)
また、2行目に注目してください。アイテムがどのように中央揃えされるかを確認してください。
例2:ビューポートを拡大すると、コンテナー全体を埋めるのに十分なコンテンツがなくなります。次に、-- align-content: flex-start;
it の効果を確認し始めます。コンテンツはコンテナーの上端を基準にして配置されます。
これらの例はflexboxに基づいていますが、同じ原則がCSSグリッドにも適用されます。お役に立てれば :)
よく私は私のブラウザでそれらを調べました。
align-content
それの値が伸びている場合、列の行方向または幅のために、ラインの高さを変更したりするためのライン間又は周囲に空きスペースを追加することができspace-between
、space-around
、flex-start
、flex-end values
。
align-items
行の領域内のアイテムの高さまたは位置を変更できます。アイテムがラップされていない場合、アイテムは1行しかなく、そのエリアは常にフレックスボックスエリアに引き伸ばされ(アイテムがオーバーフローした場合でも)、align-content
1行には影響しません。したがって、ラップされていないアイテムには影響がなくalign-items
、すべてが1行にある場合にのみ、アイテムの位置を変更したり、アイテムをストレッチしたりできます。
ただし、それらがラップされている場合は、複数の行と各行内に項目があります。また、各行のすべてのアイテムの高さが同じ(行方向の)場合、その行の高さはそれらのアイテムの高さに等しくなり、align-items
値を変更しても効果はありません。
したがってalign-items
、アイテムがラップされるときにアイテムに影響を与え、同じ高さ(行方向に対して)にしたい場合は、まずalign-content
、行領域を拡張するためにストレッチ値を使用する必要があります。
align-content
align-content
対照交差軸(すなわち、垂直方向場合flex-direction
でありrow
、水平場合flex-direction
であるcolumn
)の位置決め複数互いに対してライン。
(段落の行が垂直方向に広がり、上に向かって積み上げられ、下に向かって積み上げられると考えてください。これはflex-direction
行パラダイムの下にあります)。
align-items
align-items
フレックス要素の個々の線の交差軸を制御します。
(段落の個々の行がどのように配置されているかを考えてください。通常のテキストと数式のようなより長いテキストが含まれている場合。その場合、それは行の各タイプのテキストの下部、上部、または中央になります。整列しますか?)
私はすべての答えとブログを訪問して学んだことは
交差軸と主軸は何ですか
flex-direction: row
flex-direction: column
align-contentとalign-items
align-contentは行用であり、コンテナーに(複数の行がある)align-contentのプロパティがある場合に機能します
.container {
align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe;
}
align-itemsは、align-itemsの行プロパティのアイテム用です
.container {
align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe;
}
flexへの参照の詳細については