画面の上部にdivを貼り付けて、他の要素やその子要素に影響を与えないようにします。
.parent {
display: flex;
justify-content: center;
position: absolute;
}
<div class="parent">
<div class="child">text</div>
</div>
position: absolute
行を追加すると、justify-content: center
が無効になります。それらは互いに衝突しますか、そして解決策は何ですか?
編集
みんなありがとう、それは親の幅の問題だ。しかし、反応ネイティブなので、width: 100%
を設定できません。 flex: 1
とalign-self: stretch
を試しましたが、両方とも機能していません。最終的に Dimensions を使用してウィンドウの幅全体を取得し、機能しました。
編集
React Nativeの新しいバージョン(0.49を使用)では、width: 100%
を受け入れます。
いいえ、絶対配置はflexコンテナと競合しません。要素をフレックスコンテナにすることは、その内部レイアウトモデル、つまりそのコンテンツのレイアウト方法にのみ影響します。配置は要素自体に影響し、フローレイアウトの外部の役割を変更できます。
つまり
display: inline-flex
を使用して要素に絶対配置を追加すると、ブロックレベル(display: flex
など)になりますが、それでもフレックスフォーマットコンテキストが生成されます。
display: flex
を使用して要素に絶対配置を追加すると、fill-availableアルゴリズムの代わりに、シュリンクフィットアルゴリズム(インラインレベルコンテナーの典型)を使用してサイズが設定されます。
つまり、 フレックスの子との絶対的な位置の競合 。
アウトオブフローであるため、フレックスコンテナの絶対位置の子はフレックスレイアウトに参加しません。
親の幅を忘れました
.parent {
display: flex;
justify-content: center;
position: absolute;
width:100%
}
<div class="parent">
<div class="child">text</div>
</div>
center
テキストの親にwidth:100%
を指定する必要があります。
.parent {
display: flex;
justify-content: center;
position: absolute;
width:100%
}
<div class="parent">
<div class="child">text</div>
</div>
垂直方向に中央揃えする必要がある場合は、height:100%
およびalign-itens: center
を指定します
.parent {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
width:100%;
height: 100%;
}