前端 盒子水平垂直居中的五大方案

2022-05-19 08:40:41 字數 1770 閱讀 5486

讓當前的盒子相對於其父級的容器來定位

首先要把父級元素的定位方式改為 relative

然後把當前盒子position設定為absolute,先把左上角固定在中間,然後向上和向下移動該盒子的一半

position

: absolute;

top: 50%;

left

: 50%;

margin-top

: -25px;

margin-left

: -50px;

方法的缺點:一定要知道當前盒子的寬和高,以此來計算調整位置後需要移動的距離

**這種方式沒什麼好說的,算是利用程式的小缺陷吧,直接看**

position

: absolute;

top: 0;

left

: 0;

right

: 0;

bottom

: 0;

margin

: auto;

方法的缺點:雖然不需要知道盒子的具體寬和高,但是這個盒子必須得有乙個固定的寬和高,不然就會被拉伸的很難看

position

: absolute;

top: 50%;

left

: 50%;

tranform

:translate

(-50%, -50%)

;

具體請參考:css3 transform屬性

—以上三種方式核心都是基於定位來的—

display

: flex;

/* 設定為flex布局 */

justify-content

: center;

/* 設定為水平居中 */

align-items

: center;

/* 設定為垂直居中 */

詳情參考:flex布局

獲得當前螢幕的寬和高,獲取盒子的寬和高,然後定位的時候用螢幕寬高減去盒子寬高再除以2.本質上還是基於定位來的,需設定body的position為relative,box的position為absolute。

lethtml

= document.documentelement,

winw =

html

.clientwidth,

winh =

html

.clientheight,

boxw = box.offsetwidth,

boxh = box.offsetheight;

box.style.position =

"absolute"

; box.style.left =

(winw - boxw)/2

+'px'

; box.style.top =

(winh - boxh)/2

+'px'

;<

/script>

總結:其實盒子水平居中還有其他的解決方案,當前最常用的是第三種和第四種方式,但是他們需要考慮相容,對於一些老版本的瀏覽器例如ie8以及之前的是不相容的。可根據專案中的實際需要去選擇採用的方式。

移動端水平垂直居中 盒子垂直水平居中方案

盒子垂直水平居中的需求在專案中可以說是非常常見的,我在開發過程中常用的以下幾種方法 首先,做一下基礎的布局 定位利用絕對定位使得盒子在父容器中水平垂直居中,是簡單有效的方法,在實際開發中用的很多 container box 但是這種方法在子元素寬高不確定的情況下就不適用了。由於 css3 的出現,有...

針對盒子垂直水平居中的解決方案

盒子在視窗垂直水平居中有七種方法 第一種 利用負的margin來進行居中,需要知道固定寬高,限制比較大。body div nth of type 1 body div nth of type 1 div 第二種 利用絕對定位居中,非常常用的一種方法。body div nth of type 2 bo...

div盒子水平垂直居中的方法

這個問題比較老,方法比較多,各有優劣,著情使用。一 盒子沒有固定的寬和高 方案1 transforms 變形 這是最簡單的方法,不僅能實現絕對居中同樣的效果,也支援聯合可變高度方式使用。內容塊定義transform translate 50 50 必須加上 top 50 left 50 優點 1.內...