2017-12-24 7 views
1

今日私は非常に奇妙な何かに遭遇しました。 divにスタイルoverflow: hiddenを追加すると、その内容にヘッダーがある場合は余白やパディングのような余分な余白ができます。量は少ないので、私は通常気づかずに気にしませんでしたが、問題は私がアニメーションを作っていることと、マージン/パディングがそれを台無しにしていることです。何時間も私はそれが間違っていたアニメーションだと思っていましたが、ついにそれを絞り込んでしまいました。なぜオーバーフローですか?隠しパッド/余白を追加しますか?

ここで、オーバーフローとのコードです:

<div style="overflow:hidden"> 
    <ng-content select="wizard-step"></ng-content> 
</div> 

NG-内容は、このレンダリング:

<h5><strong>testing bootstrap header</strong></h5> 
<search-select #select [placeholder]="'Busca audiencias...'" (selected)="onSelected($event); select.text = ''" [template]="template" property="name" [items]="catalogAudiences | filterAudiences:audiences"></search-select> 
<div class="mt-3"> 
    <div *ngIf="!audiences?.length" class="alert alert-primary"> 
     No has agregado audiencias. 
    </div> 
    <audiences-list (remove)="onRemove($event)" [readOnly]="true" [audiences]="audiences"></audiences-list> 
</div> 

をそして、それは次のようになります。私はあなたが矢に気づくしたい enter image description here

は、私が話している余分なスペースを示しています。比較するために、これは私がstyle="overflow:hidden"を削除した場合、それは次のようになります。

enter image description here

私はそれを伝えるのは難しいかもしれないけど、いつでも、それがほとんど「テストのブートストラップヘッダーの」ifのようなものだが、いくつかの不要なマージンを得ていますdivにはoverflow: hiddenがあり、これは私のアニメーションを混乱させます。これをどうすれば解決できますか?

私はBootstrap 4とAngular 5を使用しています。

+0

要素を調べると、コンテナや内部ディビジョンには他にどのようなCSS属性がありますか?特に位置、表示、浮動小数点?私の勘違いは、オーバーフロー属性が予期しない方法でスタッキングコンテキストを乱しているということです。 – cheryllium

+0

@heryllium、私はそれを試して、私は普通のものを見つけることができませんでした。私はそれがcssになると最高ではないので、私は何を探すべきか分かっているようではないが、とにかく。より多くのテストの後、私はこれだけが影響を与えるように見えた、ヘッダー(この場合は

)。その要素を削除すると、間違いは起こりません。余分なスペースは追加されません。それは他のタグでも起こるかもしれませんが、それはこれまでのところ私が得たものです。 – Christian

+0

これらの属性に他にどのようなCSSがあるかを共有できますか? – cheryllium

答えて

1

h5(「テスト用のブートストラップヘッダー」)は、ブラウザのデフォルトまたはブートストラップの上端に、divのoverflow: hiddenの影響を受けている可能性があります(ブロックマージンをブロックするブロックの書式設定コンテキストを確立します)。親のマージンと崩壊する)。仕様のcollapsing marginsを参照してください。

上部の余白を削除するとこれが解決されます。これがあなたの答えです。

+0

私は[this jsfiddle](https://jsfiddle.net/ConnorsFan/43666wwd/)で同様の結論に達しました。 'body'要素の上余白は' h5'要素のマージンと崩れているようです。この場合、体の余白を取り除くことで問題は解決します。 – ConnorsFan

+0

はい、うまくいきました。オーバーフローせずにコンテンツブロックの余白を常に崩壊させる方法はありますか?隠されていますか?そうすれば、少なくとも目立たないでしょう。基本的に私はオーバーフローが必要です:アニメーションのスライド中に隠されていますが、一度取り除かれると余分なマージンも取り除かれ、アニメーションの終わりがいかに不自然に見えるかをすぐに教えてくれます。だから今私はオーバーフローせずに折り畳み余白を無効にすることができるようにしたいと思います:隠された。ブートストラップヘッダーから上余白を削除することは、実際にはオプションではありません。これは、コンテンツで再利用可能なコンポーネントにする必要があるからです。 – Christian

+0

私は 'NG-content'前と後にこれを挿入することによって、それを修正するために管理:それは作品 '

.
' とアニメーションは、今は良いように見えますが、男は、これは醜いで、ハックのように感じています。もっと良い方法があると思いますか? – Christian

関連する問題