」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在沒有 JavaScript 的情況下實現 CSS 中 Div 元素的居中擴充?

如何在沒有 JavaScript 的情況下實現 CSS 中 Div 元素的居中擴充?

發佈於2024-11-15
瀏覽:242

How to Achieve Centered Expansion of a Div Element in CSS Without JavaScript?

使用CSS 從中心擴展Div

在CSS 轉換領域,人們可能會想像div 元素從其中心軸優雅地擴展,而不是從左上角和左上角展開的預設行為。然而,如果沒有 JavaScript,這種期望的效果就會帶來挑戰。

解決方案:操縱邊距

實現這種居中擴展的關鍵在於使用特定的轉換 div 的邊距公式。該技術涉及計算目標尺寸和初始尺寸之間的差異並將結果除以二。然後,該值將在轉換過程中用作負邊距調整。

自訂選項:

根據所需的行為,可以使用三個主要選項:

選項1:保留空間

此選項將div 在其周圍保留的空間內展開,保留周圍的元素不受影響。

#square {
    -webkit-transition: width 1s, height 1s, margin 1s;
    transition: width 1s, height 1s, margin 1s;
}
#square:hover {
    margin: 55px; /* calculated as initial margin - ((width change and height change)/2) */
}

選項 2:覆蓋周圍元素

透過設定負邊距,此選項會導致 div 擴展到附近的元素,重疊其內容。

#square {
    -webkit-transition: width 1s, height 1s, margin 1s;
    transition: width 1s, height 1s, margin 1s;
}
#square:hover {
    margin: -50px; /* calculated as 0 - ((width change and height change)/2) */
}

選項 3:移動周圍元素

此變體會移動 div 並將後續元素沿著文件流向下移動。

#square {
    -webkit-transition: width 1s, height 1s, top 1s, left 1s, margin 1s;
    transition: width 1s, height 1s, top 1s, left 1s, margin 1s;
}
#square:hover {
    top: -50px; /* calculated as initial top - ((new height - initial height)/2) */
    left: -50px; /* calculated as initial left - ((new width - initial width)/2) */
    margin-right: -50px;
    margin-bottom: -50px;
}

注意: 這些計算適用於方形 div。對於非方形元素,邊距調整的計算可能會略有不同,具體取決於所需的比例調整大小。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3