レスポンシブ レイアウトを使用するサイトで作業していますが、新しい CSS 複数列プロパティ (http://dev.w3.org/csswg/css3-multicol/) の欠点を回避する際に問題が発生しました。 .
ブラウザー ウィンドウの幅が十分に広い場合は、テキストを 2 つの列に分割し、小さな画像用のサイドバーを配置します。複数列の css プロパティはうまく機能しますが、あまりスマートではありません。
最初のセクションは 2 つの同じ高さの列に均等に分割されていますが、高すぎます。誰かがこのセクションを読むには、最初の列に沿って下にスクロールしてから、次の列の最初に戻って残りを読む必要があります。
2 番目のセクションも同じ高さの 2 つの列に分割されていますが、文が 2 つしかないため、ぎこちなく見えます。ユーザーが読まなければならない 2 番目の列を正当化するのに十分なコンテンツがありません。
私の考えでは、解決策は次のとおりです。
- 固定された最大高さでセクションをサブセクションに分割します。そうすれば、ページをスクロールせずに列全体を読むことができ、より記事のように見えます.
- その最大高さよりも短いセクションを 1 つの列として保持します。
問題は、CSS3 の複数列がこのように機能しないことです。唯一の方法は、文字数、css テキスト プロパティ、および要素のサイズを計算し、文字列を分割/新しい html 要素を追加して、コンテンツを別々のセクションに分散して列を分割することを含む、ある種の JavaScript ソリューションになると思います正しく。
次の 2 つの点に注意してください。
- これらの列は流動的な幅であるため、マジック ナンバーの選択は機能しません。
- このプロセスは可逆的でなければならず、レスポンシブ レイアウトはブラウザーの幅が狭い場合に 1 列に戻すことができます。
ちょっとトリッキーですが、おそらく試してみるのに十分実行できると思います。すでにこの問題に取り組んでいる可能性のある人について誰か聞いたことがありますか? または、そうでない場合、これのためにアルゴリズムをまとめる方法について何かアイデアはありますか?
どうもありがとうございました。
1/8/13:
わかりやすくするために、レスポンシブ デザインの意図したモードの画像をいくつか示します。(私はSOで初めてなので、リンクは2つだけです)
モード 1: モバイル用に線形化された単一列
モード 2. iPad 用のサイドバー付きの 1 列 / 狭いブラウザー ウィンドウ
モード 3.幅の広いブラウザー ウィンドウの 2 列
モード 3 が問題です。最初のセクションのコンテンツは長すぎて 1 ページに収まらないため、この場合はブラウザーの高さに収まる行に分割しています。それが私がJavaScriptソリューションを探しているものです。