css常用元素水平垂直居中方案
適用場景:父子寬高都可未知(比較推薦這種方式,簡單,而且目前兼容性也不錯。)
<html>
<head>
<style>
.parent {
width: 100%;
height: 100px;
background: cyan;
display: flex;
justify-content: center;
align-items: center;
}
.son {
width: 20%;
height: 20%;
background: pink;
}
</style>
</head>
<body>
<div class='parent'>
<div class='son'></div>
</div>
</body>
</html>
適用場景:父元素寬高已知未知都行,但是首先得有寬高。其次子元素的寬高必須已知,因為需要設(shè)置子元素的負(fù)margin. (也可以將負(fù)margin設(shè)置成translate來做位移實現(xiàn))
<html>
<head>
<style>
.parent {
position: relative;
width: 200px;
height: 200px;
background: pink;
}
.son {
position: absolute;
left: 50%;
top: 50%;
margin-left: -25px;
margin-top: -25px;
width: 50px;
height: 50px;
background: yellow;
}
</style>
</head>
<body>
<div class='parent'>
<div class='son'></div>
</div>
</body>
</html>
適用場景:父子元素寬高都未知的情況(該方式不需要明確知道子元素寬高,子元素寬高可用百分比,對于子元素寬高不確定需要居中的情況比較適合。)
<html>
<head>
<style>
.parent {
position: relative;
width: 200px;
height: 200px;
background: cyan;
}
.son {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
margin: auto;
width: 10%;
height: 10%;
background: yellow;
}
</style>
</head>
<body>
<div class='parent'>
<div class='son'></div>
</div>
</body>
</html>
適用場景:父子元素寬高未知,兼容性不大好
<html>
<head>
<style>
.parent {
display: grid;
}
.son {
jusitify-self: center;
align-self: center;
}
</style>
</head>
<body>
<div class='parent'>
<div class='son'></div>
</div>
</body>
</html>
Table-cell + text-align + vertical-align
適用場景: 父元素大小已知(非百分比高度),子元素大小未知,但子元素須為行內(nèi)塊元素,較好的兼容性
<html>
<head>
<style>
.parent {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 100vw;
height: 90vh;
background-color: yellowgreen;
}
.son {
display: inline-block;
width: 200px;
height: 200px;
background-color: Indigo;
}
</style>
</head>
<body>
<div class='parent'>
<div class='son'></div>
</div>
</body>
</html>
適用場景:父子寬高都可未知,子元素需為行內(nèi)塊元素(這種方式其實就是使用偽元素的高度為100%,子元素和偽元素都設(shè)置 vertical-align: middle實現(xiàn)垂直居中的效果)
<html>
<head>
<style>
.parent {
height: 100vh;
width: 100vw;
text-align: center;
background: #c0c0c0;
}
.parent:before {
content: "\200B";
display: inline-block;
height: 100%;
vertical-align: middle;
}
.son {
display: inline-block;
vertical-align: middle;
width: 200px;
height: 200px;
padding: 10px 15px;
background: #f5f5f5;
}
</style>
</head>
<body>
<div class="parent">
<div class="son"></div>
</div>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
這篇文章主要介紹了css實現(xiàn)元素居中的N種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
這篇文章主要介紹了css實現(xiàn)元素垂直居中顯示的7種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)2020-09-04- 這篇文章主要介紹了CSS實現(xiàn)子元素div水平垂直居中的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起2020-09-03
這篇文章主要介紹了css 不定寬高的元素居中布局解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起2019-09-18
CSS自適應(yīng)布局實現(xiàn)子元素項目整體居中,內(nèi)部項目左對齊
這篇文章主要介紹了CSS自適應(yīng)布局實現(xiàn)子元素項目整體居中,內(nèi)部項目左對齊,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們2019-09-03css實現(xiàn)元素垂直居中的常用方法(總結(jié))
本文給大家分享幾種方法介紹css實現(xiàn)元素垂直居中的常用方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-01- 在 CSS 中要設(shè)置元素水平垂直居中是一個非常常見的需求了。這篇文章主要介紹了CSS實現(xiàn)元素居中原理解析,本文分別從行內(nèi)元素和塊級元素進(jìn)行說明,具有一定的參考價值,感興2018-10-18
- 作為前端攻城師,在制作Web頁面時都有碰到CSS制作水平垂直居中,我想大家都有研究過或者寫過,特別的其中的垂直居中,更是讓人煩惱,下面這篇文章主要給大家匯總介紹了關(guān)于2017-09-12
css實現(xiàn)元素水平垂直居中常見的兩種方式實例詳解
這篇文章主要給大家介紹了css實現(xiàn)元素水平垂直居中的兩種方式,文中給出了完整的示例代碼供大家參考學(xué)習(xí),對大家的學(xué)習(xí)或者工作具有一定的參考價值,有需要的朋友們下面來2017-04-23關(guān)于css 行元素和塊元素 相互轉(zhuǎn)換 居中
下面小編就為大家?guī)硪黄P(guān)于css 行元素和塊元素 相互轉(zhuǎn)換 居中。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-05



