フレックスボックスを理解しようとしています。「最初の」ブロックをブラウザの全幅に合わせて引き伸ばし、「2番目」のブロックを固定サイズで左揃えにします。
そのため、親(align-items: flex-end
)で<html>
を使用し、「最初の」ブロックでalign-self: stretch
を使用して最初のブロックをストレッチしようとしました。
これは機能していません。どちらも左揃えです。
<html>
<head>
<style>
html {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-end;
}
#first {
align-self:stretch;
background-color: red;
border: 3px solid black;
}
#second {
background-color:green;
width: 300px;
height: 400px;
border: 3px solid yellow;
}
</style>
</head>
<body>
<div id="first">This is first</div>
<div id="second">This is second</div>
</body>
</html>
したがって、問題は<html>
ノードがフレックスコンテナーとしてあり、<body>
ノード(その子)が唯一のフレックスアイテムであることです。
現在、align-self:stretch
の#first
は無視されます。そのプロパティはフレックスアイテムにのみ適用され、#first
はnotフレックスアイテム(設定方法)であるためです。今すぐ)。
必要なものを取得するには、<body>
ノードをフレックスコンテナーにするnot<html>
ノードにする必要があります。したがって、最初のスタイルルールを変更して、body{
ではなくhtml{
に適用します。
(また、#secondを左揃えにしたい場合は、flex-start
ではなくflex-end
が必要です。通常、左端はflex-start
水平端です。)
#firstにflex:1を追加します
Justify-content:flex-startを削除します。およびalign-items:flex-end; HTMLから
例を参照してください: http://codepen.io/anon/pen/vifIr