一、基本概念

在網(wǎng)頁開發(fā)中,我們經(jīng)常需要將某個元素固定在屏幕的中央位置,而這種情況下我們就需要使用到固定定位(fixed position)。
固定定位是一種相對于瀏覽器窗口固定位置的定位,即在任何情況下,該元素的位置都不會發(fā)生改變。在固定定位下,元素不會隨滾動條的滾動而滾動。
實現(xiàn)Fixed居中,就是將固定定位的元素設置成整個頁面的水平垂直居中。
二、實現(xiàn)方式
實現(xiàn)Fixed居中有很多不同的方式。下面我們就從以下幾個方面來詳細講解。
三、方法一:使用Flexbox布局
使用Flexbox布局是實現(xiàn)Fixed居中最簡單的方式之一。我們可以使用以下CSS代碼:
.container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: flex;
justify-content: center;
align-items: center;
}
上面的CSS代碼將父容器(.container)設置成固定定位,然后將其上、左坐標都設置為50%。接著使用transform屬性將其平移至中間。最后使用display屬性將其設置為Flex布局,然后使用justify-content和align-items屬性將其水平和垂直居中。
四、方法二:使用絕對定位
使用絕對定位也是實現(xiàn)Fixed居中的方法之一。我們可以使用以下CSS代碼:
.container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.box {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 50%;
height: 50%;
background-color: #ccc;
}
上面的CSS代碼同樣將父容器(.container)設置成固定定位,然后將其上、左坐標都設置為50%。接著使用transform屬性將其平移至中間。
然后,我們將待居中的元素(.box)設置為絕對定位,上下左右都設置為0。然后使用margin屬性將其水平垂直居中,并設置寬高比例。這樣我們就可以實現(xiàn)Fixed居中。
五、方法三:使用Grid布局
如果你熟悉Grid布局,那么使用Grid布局也是實現(xiàn)Fixed居中的方法之一。我們可以使用以下CSS代碼:
.container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: grid;
place-items: center;
}
上面的CSS代碼將父容器(.container)設置成固定定位,然后將其上、左坐標都設置為50%。接著使用transform屬性將其平移至中間。最后使用display屬性將其設置為Grid布局,然后使用place-items屬性將其水平和垂直居中。
六、方法四:使用文本對齊
如果想要在Fixed定位下只居中文本,我們可以使用以下CSS代碼:
.container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
上面的CSS代碼同樣將父容器(.container)設置成固定定位,然后將其上、左坐標都設置為50%。接著使用transform屬性將其平移至中間。最后使用text-align屬性將其文本內(nèi)容水平居中。
七、方法五:不使用Flexbox、Grid、文本對齊
如果你不想使用Flexbox、Grid和文本對齊,我們還有其他的方式。我們可以使用以下CSS代碼:
.container {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 50%;
height: 50%;
}
.box {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 50%;
height: 50%;
background-color: #ccc;
}
上面的CSS代碼將父容器(.container)的上下左右都設置為0,然后使用margin屬性將其水平垂直居中,并設置寬高比例。這樣我們就可以實現(xiàn)Fixed居中。如果父容器(.container)和待居中的元素(.box)的寬高比例一致,那么我們還可以使用以下CSS代碼:
.container {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.box {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 50%;
height: 50%;
background-color: #ccc;
}
上面的CSS代碼將待居中的元素(.box)的上下左右都設置為0,然后使用transform屬性將其水平垂直居中。這樣我們就可以實現(xiàn)Fixed居中。

京公網(wǎng)安備 11010802030320號