跳至內容
Astera Technology

transform 移了畫面,原本位置仍會留住

方塊橫移後,實際外框座標變了,下一行卻仍按原本流位置排。

畫面 x 改 40px,正常流位置仍保留。

下載完整個案資料及參考答案 ↓

先看這個例子

第一個段落框是 100×30,畫面向右移 40px;正常流位置仍佔 100×30,下一段沿原本位置在下面開始。

輸入與瀏覽器原生結果
情況輸入或查看方法結果與意思
畫面移動量度 left 減正常流偏移40px
下一行 x比較下一行與原流位置左邊沒有跟住右移 40px
下一行 y查看流位置高度在第一段流高度後開始;基準字級時為 30px
下載可編輯 CSV ↓

瀏覽器怎樣處理

Transform 改呈現座標,不重新分配正常流位置。getBoundingClientRect 包括變換,流偏移值則可查原本位置。用最小高度容許放大文字增高,因此放大後垂直距離要量度,不能照當 30px。

margin 會連流位置一起改

反例不用 transform,改成 margin-left40px。

反例原始碼,請另開例子核對
<style>body{margin:8px}</style>
<style>.first,.next{width:100px;min-height:30px;margin:0}.first{margin-left:40px;background:#e3efe8}.next{background:#d9dce8}</style><p class="first">原始檔</p><p class="next">下一行</p>

第一段的流偏移本身改了 40px;流位置與呈現位置之間沒有 transform 差值。

試着修正

哪個量度包括 40px transform:畫面外框還是原本流偏移?

查看參考答案

畫面外框包括變換;與流偏移比較,才分得出移動類型。

  • 流偏移與變換後外框分開記。
  • 容許文字增高,不裁在固定 30px 內。

原始例子檔案

相關資源