如何使用 CSS 和 Flexbox 實現圖片和文本的響應式布局?

如何使用 CSS 和 Flexbox 實現圖片和文本的響應式布局?

cssflexbox實現響應式圖片文本布局

構建響應式網頁布局是網頁開發中的核心需求,本文將演示如何利用CSS和Flexbox實現一個左側為圖片(200×200像素),右側為文本的響應式布局。在大屏幕上,文本占據右側剩余空間;在小屏幕(例如手機)上,圖片則顯示在文本上方。

以下代碼展示了如何利用Flexbox和媒體查詢實現這一效果:

初始代碼(存在問題):

<meta charset="utf-8"> <title>Flexbox example</title> <style>   .container {     display: flex;     flex-direction: row; /* 默認水平布局 */   }    .image {     width: 200px;     height: 200px;     background-color: #f0f0f0;     margin-right: 20px; /* 圖片和文本之間的間距 */   }    .text {     flex: 1; /* 右側文本占據剩余空間 */   }    /* 在小尺寸屏幕上媒體查詢 */   @media screen and (max-width: 600px) {     .container {       flex-direction: column; /* 垂直布局 */     }      .image {       margin-bottom: 20px; /* 圖片下方留出間距 */     }   } </style> <div class="container">   <div class="image"></div>   <div class="text">     <p>lorem ipsum dolor sit amet, consectetur adipiscing elit. sed consequat placerat lorem.</p><p><span>立即學習</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免費學習筆記(深入)</a>”;</p>   </div> </div>

上述代碼的問題在于,布局并未根據屏幕寬度自適應,而是等比例縮放。這是因為缺少視口元數據設置。

解決方案:添加視口元數據和調整CSS

為了解決這個問題,我們需要在html

部分添加視口元數據標簽,并調整CSS代碼:

<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Flexbox 布局示例</title> <style>   .container {     display: flex;   }    .image {     width: 200px;     height: 200px;   }    .text {     flex: 1;   }    /* 在小尺寸設備上,重置布局 */   @media (max-width: 600px) {     .container {       flex-direction: column;       /* 將布局改為垂直方向 */     }      .image {       width: 200px;       height: 200px;     }     .text {       width: auto;       /* 讓元素寬度自適應 */       height: auto;       /* 讓元素高度自適應 */     }      /* 取消 .text 的 flex 屬性 */     .text {       flex: initial;       /* 或者可以使用 flex: none; */     }   } </style> <div class="container">   <div class="image">圖片</div>   <div class="text">文本</div> </div>

通過添加viewport元數據和調整flex屬性,以及在小屏幕情況下將flex-direction改為column,我們實現了真正的響應式布局。 現在,布局將根據設備屏幕寬度進行自適應調整。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享