cssは水平垂直中心のいくつかの方式を実現します
2476 ワード
普段よく使うcss水平垂直中央方式を整理します~
flexレイアウトの使用
HTML
flexの
相対位置決めと絶対位置決めを利用した
相対位置決めでは、絶対位置決めを用いて上下左右を0に設定し、
相対的な位置決めと絶対的な位置決めを利用して、外縁距離と平行移動の配合を加えます
HTML
相対位置決めでは、絶対位置決めを用いて、
HTML
その他
上記はいずれも未知の外容器と自身の幅の下で水平垂直中央を実現しており、その幅の高さが既知であれば、より多くの簡単な方法で中央を実現することができ、その原理は絶対位置決めのtop/leftオフセット、marginオフセット、padding充填を利用することにほかならないが、ここでは分析しない.また,単純文字の中央は
フロントエンド学習カード群へようこそ~516913974
flexレイアウトの使用
HTML
CSS
.box {
width: 100vw;
height: 500px;
background: skyblue;
display: flex;
align-items: center;
justify-content: center;
}
.child {
width: 200px;
height: 200px;
background-color: deepskyblue;
}
flexの
alignItems:center
を利用して垂直に中央に、justifycontent:center
水平に中央に相対位置決めと絶対位置決めを利用した
margin:auto
HTML CSS
.box {
width: 100vw;
height: 500px;
background: skyblue;
position: relative;
}
.child {
width: 200px;
height: 200px;
background-color: deepskyblue;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
相対位置決めでは、絶対位置決めを用いて上下左右を0に設定し、
margin:auto
を再設定すれば中央揃えが可能相対的な位置決めと絶対的な位置決めを利用して、外縁距離と平行移動の配合を加えます
HTML
CSS
.box {
width: 100vw;
height: 500px;
background: skyblue;
position: relative;
}
.child {
width: 200px;
height: 200px;
background-color: deepskyblue;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
相対位置決めでは、絶対位置決めを用いて、
margin
で外容器の50%をオフセットし、translate
で自身の幅の高い50%を平行移動して補うようにすればよいtextAlign
およびverticalAlign
の使用HTML
CSS
.box {
width: 100vw;
height: 500px;
background: skyblue;
text-align: center;
}
.box:after {
content: "";
display: inline-block;
height: 100%;
width: 0;
vertical-align: middle;
}
.child {
display: inline-block;
vertical-align: middle;
}
textAlign:center
を用いて行内要素の水平中央を実現し、verticalAlign:middle
を用いて行内要素の垂直中央を実現する.前提は、まず偽要素を加えて高さ100%を設定することであり、elementUI
を用いたメッセージ弾窓中央実現方式を見ることができる.その他
上記はいずれも未知の外容器と自身の幅の下で水平垂直中央を実現しており、その幅の高さが既知であれば、より多くの簡単な方法で中央を実現することができ、その原理は絶対位置決めのtop/leftオフセット、marginオフセット、padding充填を利用することにほかならないが、ここでは分析しない.また,単純文字の中央は
lineHeight
とtextAlign
で実現できる.フロントエンド学習カード群へようこそ~516913974