float 的用途與限制clear 避免元素被浮動影響flexbox 取代,但仍需理解舊專案的用法<body>
  <h1>CSS 浮動與清除示範</h1>
  <div class="container">
    <img src="https://picsum.photos/200/150" alt="範例圖片" class="float-left">
    <p>
      這段文字會環繞在圖片的右側。利用 float 可以實現圖文混排的效果。
      不過要注意,浮動會讓後續的元素脫離正常的文流。
    </p>
  </div>
  <div class="box">這是一個受浮動影響的區塊,會跑上來。</div>
  <div class="clearfix"></div>
  <div class="box">這是一個加了 clear 後的區塊,恢復正常位置。</div>
</body>
body {
  font-family: "Microsoft JhengHei", sans-serif;
  margin: 0;
  padding: 20px;
}
h1 {
  text-align: center;
  margin-bottom: 30px;
}
.box {
  width: 200px;
  padding: 20px;
  margin: 20px;
  background: #3498db;
  color: white;
  border-radius: 6px;
}
.static {
  position: static; 
.relative {
  position: relative;
  left: 30px;
  top: 10px;
  background: #2ecc71;
}
.container {
  position: relative;
  height: 150px;
  background: #ecf0f1;
  margin: 20px 0;
}
.absolute {
  position: absolute;
  top: 20px;
  right: 20px;
  background: #e67e22;
}
.fixed {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: #9b59b6;
}
.sticky {
  position: sticky;
  top: 10px;
  background: #f39c12;
  padding: 15px;
  margin: 30px 0;
}
.content {
  height: 200px;
  border: 1px solid #ccc;
  margin-bottom: 20px;
}
clear: both; 或 clearfix
flex 或 grid 取代float: left/right
clearfix 修正父層高度塌陷問題flex 重寫浮動版面今天練習了 CSS 的浮動,終於理解為什麼很多舊專案的排版都靠 float 完成。雖然它的確能實現圖文混排或左右並排,但也常常帶來高度塌陷或版面跑掉的問題。
我覺得最關鍵的就是 清除浮動,不管是用 clear 還是 .clearfix,都能讓後續元素回到正常文流。這讓我體會到,CSS 的世界裡很多 bug 其實是因為沒有掌握元素的「流動方式」。
雖然現在有 flexbox 和 grid,大部分需求已經不需要再用 float,但學會它能幫助我看懂舊的程式碼,也能在一些特殊情境下派上用場。