2017-04-18 6 views
0

2つの要素が表示付きコンテナ内にあります。ブロックマージンが崩壊しますが、表示されます。 exampleフレックスボックスのマージンが子どもの間で崩壊する

.wrapper { 
    width: 50%; 
    margin: 0 auto; 
} 
.container { 
    display: flex; 
    // display: block; 
    flex-flow: column nowrap; 
    background-color: green; 
} 
h1 { 
    background-color: #777; 
    margin-bottom: 20px; 
} 
p { 
    background-color: #ccc; 
    margin-top: 15px; 
} 
+0

おそらく、私はmisspoke。マージントップボトムは留まるべきです。 .containerにはdisplay:flexは変更されていなければなりません。ディスプレイの設定:pでフレックス、h1で与えられなかった...フレックスラップを何も変えないでください。 – Petr

+0

あなたはあなたが探している画像を提供してもらえますか? あなたの説明とコメントはあまり明確ではありません – k185

答えて

0

1はdisplay: flexを使用するときにマージンは崩壊しません。それを動作させるために、回避策として


:あなたは一般的な崩壊の余白についての詳細をお知りになりたい場合は、ここでの記事のカップルが始めることですdisplay: blockに似ていますが、のクラスにのクラスを追加すると、h1とをターゲットにして、display: flexのクラスを追加することができます0。

手動で行うことができない場合は、スクリプトを使用してそのスクリプトを実行できます。

.wrapper { 
 
    width: 50%; 
 
    margin: 0 auto; 
 
} 
 
.container { 
 
    display: flex; 
 
    /* display: block; */ 
 
    flex-flow: column nowrap; 
 
    background-color: green; 
 
} 
 
h1 { 
 
    background-color: #777; 
 
    margin-bottom: 20px; 
 
} 
 
p { 
 
    background-color: #ccc; 
 
    margin-top: 15px; 
 
} 
 

 

 
/* custom classes to remove margin */ 
 
.container.flex h1:first-child { 
 
    margin-top: 0; 
 
} 
 
.container.flex p:last-child { 
 
    margin: 0; 
 
}
<div class="wrapper"> 
 
    <div class="container flex"> 
 
    <h1>header h1</h1> 
 
    <p>plain text</p> 
 
    </div> 
 
</div>

+0

それは私がマージントップを取り除くことができない点です:15px; margin-bottom:20px;この例は、フレックスボックスに引き継がれる大きなプロジェクトの一部です。つまり、私はフレックスボックスで高速の崩壊マージンを得ることはできませんか? – Petr

+0

@Petrいいえ、あなたはflexboxでマージンの崩壊を得ることはできません。なぜマージンを取り除けないのですか? – LGSon

+0

@Petr私の答えをいくつかの提案で更新しました – LGSon

関連する問題