私は現在、さまざまなデバイス (デスクトップ、モバイルなど) で完全に応答し、アクセスできる必要がある Web サイトに取り組んでいます。HTMLマークアップを1つだけにしたいのですが、メディアクエリを使用してさまざまなタイプのレイアウトを実現しています。
クリーンなマークアップを作成することは私にとって重要なので、始めましょう。物事を簡単にするために、不要なものをすべて削除します。記事のリスト(タグ)があります。各記事の内容は VARIABLE ですので、一定の高さを決めることはできません。私の目標は、これらのセクションをデバイスに基づいて配置することです。たとえば、次のようになります。
1) モバイル デバイスでは、列は 1 つだけで、すべてのセクションが互いに下にあります。
2) タブレットでは 2 つの列が必要なので、2 つの記事が隣り合っています (下の画像を参照)。
3) デスクトップでは、3 つの列が必要です...
私のマークアップはこのように見え、列などのプレゼンテーション要素を認識しています。マークアップに列を含めた場合 (列 div を使用した追加のマークアップ)、ターゲット デバイスに基づいてレイアウトを変更する機会はありません。これは、「マークアップ時」にレイアウト/プレゼンテーションを修正したことを意味します。
<article>
<h1>Header<h1>
<p>Some text...</p>
</article>
<article>
<h1>Header<h1>
<p>Some text...</p>
</article>
<article>
<h1>Header<h1>
<p>Some text...</p>
</article>
<article>
<h1>Header<h1>
<p>Some text...</p>
</article>
<article>
<h1>Header<h1>
<p>Some text...</p>
</article>
私は CSS を扱う初心者ではありません。ここ数日、ほぼすべてのことを試しました。
記事を典型的な 2 列のレイアウトに配置するにはどうすればよいでしょうか。すべての記事の高さが同じであれば、非常に簡単です。1列でも全く問題ありません。3 列は、2 列よりも実装がさらに困難です。
2 列の望ましいレイアウトは次のようになります。
しかし、フロートを操作するとこの結果が得られます(フロート:左)
ms-grid と flexbox は、(私がサポートしなければならない) 古いブラウザーではサポートされていないため、代替手段ではありません。
よろしくお願いします!

