需求:將「江南風景」與「人物肖像」兩張圖片在同一行左右對齊顯示。
<div class="image-container">
<img src="jiangnan.jpg" alt="江南風景" class="left-img">
<img src="portrait.jpg" alt="人物肖像" class="right-img">
</div>
<style>
.image-container {
overflow: hidden; /* 清除浮動,防止高度塌陷 */
}
.left-img {
float: left; /* 左側浮動 */
}
.right-img {
float: right; /* 右側浮動 */
}
</style>
<div class="flex-container">
<img src="jiangnan.jpg" alt="江南風景">
<img src="portrait.jpg" alt="人物肖像">
</div>
<style>
.flex-container {
display: flex;
justify-content: space-between; /* 兩端對齊 */
align-items: center; /* 垂直置中 */
gap: 20px; /* 圖片間距 */
}
</style>
<div class="grid-container">
<img src="jiangnan.jpg" alt="江南風景">
<img src="portrait.jpg" alt="人物肖像">
</div>
<style>
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr; /* 等寬兩欄 */
gap: 20px;
align-items: center;
}
</style>
<div class="inline-container" style="text-align: justify; font-size: 0;">
<img src="jiangnan.jpg" alt="江南風景" style="display: inline-block; vertical-align: middle; width: 48%;">
<img src="portrait.jpg" alt="人物肖像" style="display: inline-block; vertical-align: middle; width: 48%;">
</div>
| 方案 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| Flexbox | 語法簡潔、回應式強、垂直置中容易 | IE10+ 部分屬性需前綴 | 現代專案首選 |
| Grid | 二維佈局強大、精確控制 | IE 不支援 | 複雜網格佈局 |
| float | 相容性極佳 (IE6+) | 需清除浮動、垂直置中麻煩 | 舊專案維護 |
| inline-block | 簡單直觀 | 元素間會有空白間隙 | 簡單並排 |
@media (max-width: 768px) {
.flex-container {
flex-direction: column; /* 手機改為上下堆疊 */
}
}
建議使用 Flexbox,語意清晰、維護容易、支援現代瀏覽器回應式需求。