ホームページ >ウェブフロントエンド >CSSチュートリアル >実際に機能する最新の CSS レイアウト: 開発者ガイド
こんにちは! ?開発者が CSS レイアウトをデバッグできるよう数え切れないほどの時間を費やした後、私たちは皆、同じ戦いを戦っていることに気付きました。今日は、本番環境で実際に動作する、実証済みの CSS ソリューションをいくつか使用して、この問題を修正しましょう。
私たちは皆、そこに行ったことがあるでしょう。 CSS チュートリアルを見つけてコードをコピーすると、突然次のようになります。
懐かしいですね?これらの問題をきっぱりと解決しましょう。
まず、最も一般的なレイアウト、つまりヘッダー、スクロール可能なコンテンツ、フッターに取り組みましょう。私たちが望むものは次のとおりです:
解決策は次のとおりです:
.app { display: grid; grid-template-rows: auto 1fr auto; min-height: 100vh; gap: 1rem; } .header { position: sticky; top: 0; background: white; z-index: 10; } .footer { background: #f5f5f5; } .content { /* Prevent content from getting stuck under header */ padding-top: var(--safe-padding, 1rem); overflow-y: auto; }
<div> <p>Why this works:</p> <ul> <li>Grid's 1fr handles the space distribution automatically</li> <li>Sticky header stays visible while scrolling</li> <li>Content scrolls independently</li> <li>Footer always stays at the bottom</li> </ul> <h2> 2. The "Works Everywhere" Card Grid </h2> <p>Need cards that look good no matter how many you have? This solution handles everything from 1 to 100 cards:<br> </p> <pre class="brush:php;toolbar:false">.card-container { --min-card-width: 300px; display: grid; grid-template-columns: repeat( auto-fit, minmax(min(var(--min-card-width), 100%), 1fr) ); gap: clamp(1rem, 2vw, 2rem); padding: clamp(1rem, 2vw, 2rem); } .card { display: flex; flex-direction: column; height: 100%; padding: 1rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .card-content { flex: 1; /* Takes up remaining space */ } .card-footer { margin-top: auto; /* Pushes footer to bottom */ }
これが特別な理由:
ワイドスクリーンの全幅にわたるテキストを読むのがいかに難しいかに気づいたことがありますか?これを修正する方法は次のとおりです:
.content-wrapper { --content-width: 65ch; --padding: clamp(1rem, 5vw, 3rem); width: min(var(--content-width), 100%); margin-inline: auto; padding-inline: var(--padding); } .text-content { font-size: clamp(1rem, 1rem + 0.5vw, 1.25rem); line-height: 1.6; } /* For full-width backgrounds with contained content */ .full-width { width: 100%; padding-inline: var(--padding); } .full-width > * { width: min(var(--content-width), 100%); margin-inline: auto; }
開発者がこれを好む理由:
/* Add this to your dev environment */ * { outline: 1px solid rgba(255,0,0,0.1); }
これは、レイアウトの問題を早期に発見するのに役立ちます。
/* Start here */ .element { flex-direction: column; gap: 1rem; } /* Then enhance */ @media (min-width: 768px) { .element { flex-direction: row; } }
:root { --spacing-unit: 0.5rem; --padding-sm: calc(var(--spacing-unit) * 2); --padding-md: calc(var(--spacing-unit) * 4); --padding-lg: calc(var(--spacing-unit) * 8); }
学ぶための最良の方法は実践することです。これらのスニペットを取得して、プロジェクトで試してください。アプリのレイアウトから始めます – それは他のすべての構築の基礎となります。
質問がありますか?これらのパターンを改善する方法は見つかりましたか?以下にコメントを書き込んでください。通常 24 時間以内に返信します。
これが役に立った場合は、次のことを検討してください。
以上が実際に機能する最新の CSS レイアウト: 開発者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。