2012-01-08 8 views
1

すべて。オーバーフロー:スクロールコンテナ内でCSS3のマルチカラーを達成しようとしているときに私は気まずい動作を経験しています。 OS X用のクロム+サファリの作品は、iPhone上で壊れる:iPhone + CSS3マルチCol +オーバーフロー:Scroll = Bug?

ここ
<div id="rubber-banded"> 
    <div id="columns"> 
    <p>[...]</p> 
    <p>[...]</p> 
    [...] 
    </div> 
</div> 

#rubber-banded { 
    -webkit-overflow-scrolling: touch; 
    overflow:scroll; 
    margin-top:42px; 
    width:100%; 
    outline:2px solid red; 
    height:300px; 
} 

#columns { 
    margin-top:10px; 
    -webkit-column-width:120px; 
    height:250px; 
    outline:2px solid blue; 
} 

が期待された結果である:expected result

、ここで実際の結果である:enter image description here

あなたが見ることができるように、テキスト新しい段落が始まるまで、#columnsがオーバーフローします。次に、次の段落は上の隙間を使って次の列から開始します。非常に奇妙なことですが、overflow:scroll;overflow:hidden;に変更して#rubber-bandedとすると、予想通りの効果が得られますが、私はゴムバンド効果を得られません:(私は-webkit-column-break-afterと(ブラウザエンジンがあなたのケースでも同じですが)無駄。

が、これはバグですか、私はそれが間違っているのでしょうか?

答えて

0

CSSプロパティoverflow: scrollはブラウザによって異なって解釈され、iPhone上のすべての時間のとき、そこにscrollブラウザはタッチに最適化されたブラウザであるため、スクロールの余白を追加します

+0

「#rubbe r-banded'、そのスクロールマージン(iPhoneとデスクトップのWebkitの両方に存在する)、またはそのオーバーフロープロパティ、**各テキスト列は常にChrome + Safari **の '#columns'の先頭に揃えられます。これを確認するには、 '#rubber-banded 'の高さを'#columns'よりも小さくすることで解決します。 Chrome + Safariは垂直スクロールバーを追加しますが、列は通常レンダリングされます。 iPhoneはありません。デスクトップ上での動作は、 '#columns'の周りに何が起こっても、テキストカラムは決してコンテナをオーバーフローさせるべきではなく、常にトップに合わせるべきです。 –

関連する問題