パディングを含むブロック要素で列レイアウトを正しく動作させるには問題があります。私が直面している問題は、最初の列の白い背景の細い線が2番目の列の先頭に壊れることです。 IE11とMS-Edgeで発生します。 ChromeとFirefoxは意図したとおりに列を表示します。break-inside:縁のパディングを使用しないでください。
.outer {
-moz-column-count: 2;
-webkit-column-count: 2;
column-count: 2;
-webkit-column-gap: 1.6em;
-moz-column-gap: 1.6em;
column-gap: 1.6em;
background-color: grey;
}
.container {
break-inside: avoid;
page-break-inside: avoid;
-webkit-column-break-inside: avoid;
padding: 0.75em;
background-color: white;
}
.container + .container {
margin-top: 0.5em;
}
<div class="outer" style="margin: 40px auto; width: 500px; border: 1px solid red">
<div class="container">
This is a rather long text to break into separate lines but - sometimes - not to stay in one. With some additional text for a longer column
</div>
<div class="container">
Next column
</div>
<div class="container">
Another column
</div>
</div>
は、どのように私はIE11とMS-エッジで動作するようにbreak-inside: avoid
を得るのですか? 余分なDIVにテキストを折り返してパディングを削除しようとしましたが、最初の列自体のテキストが壊れてしまいました。
ヒントはありますか?前もって感謝します!
UPDATE
問題がdiscribedよりも悪いようです。 break-inside: avoid
ちょうどエッジで動作していません。ここで私は(も内部テーブルを壊す)列の要素にブロック要素を置く:
.column {
column-count: 2;
column-gap: 1em;
}
.elem {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid;
}
.elem + .elem {
margin-top: 0.5em;
}
.elem {
background-color: orange;
}
.elem + .elem {
background-color: lightblue;
}
.elem + .elem + .elem {
background-color: lightgreen;
}
<div class="column">
<div class="elem">
<div>one</div>
<div>two</div>
<div>three</div>
<div>four</div>
<div>five</div>
<div>six</div>
</div>
<div class="elem">
<div>one</div>
</div>
<div class="elem">
<div>one</div>
</div>
</div>
をMS documentation for Edgeは、それがサポートされていると述べ、まだそれが機能していません。 Can I useでもサポートされており、既知の問題はリストされていません。
はこれにいくつかの解決策がなければならない...
実際には、単にディスプレイの使用:一般的な場合にインラインブロック+幅の100%は私のために働きました。 –