CSS常用センターメソッド
6497 ワード
CSSを使用してページをスタイルレイアウトする場合、中央は私たちが最もよく使うレイアウトの一つであり、中央レイアウトは水平中央と垂直中央に分けられます.本文では、CSSの中央配置のいくつかの一般的な方法を紹介します.
一、水平中央行内要素およびクラス行内要素が中央
CSS:ブロック要素 を用いる.
HTML:
CSS:
ブロックレベル要素に対して position測位 を用いる.
positionを使用してエレメントを中央に配置するには、親エレメントに
CSS:
この方法は、親要素が flex中央
CSS:
また、flexレイアウトを使用して要素を中心にして要素の幅を設定せずに、内容で広げることができます. transform を使用
HTML:
CSS:
transformと同様に、中央要素の幅を設定する必要はありません.
二、垂直中央行内要素およびクラス行内要素の垂直中央は、親要素が高い固定された行内要素およびクラス行内要素に対して垂直中央であり、最も基本的な方法は、 に設定することである.
HTML:
CSS:
HTML:
CSS: positionによる位置決め 水平方向の中央に配置するのと同様に、要素を垂直方向に配置する方法では、絶対位置を使用できます.HTML:
CSS: transform を使用
HTML:
CSS:
CSS 3のtransformプロパティを使用すると、開発者は中央要素の幅を設定しないことができます.
三、水平垂直中央絶対位置中央 上記の水平中央の方法では、
CSS:
これにより要素は高さを宣言する必要があります.たとえば、 は、コンテンツのオーバーフローを防止するために はWindows Phoneデバイスでは機能しません. はIE-8以下のブラウザではサポートされていません. position測位 を用いる.
要素の水平中央と垂直中央の内容ではposition位置決めを用いて要素の中央を実現することについて述べたが,両者を組み合わせると水平垂直を実現できるようになった.
HTML:
CSS: transform を使用
同様に、CSS 3のtransformプロパティを使用して、要素の水平垂直中央を実現することもできます.HTML:
CSS:
transformプロパティを使用すると、コンテンツを使用して要素を拡張し、要素の設定によって決定される幅を避けることができます.
以上は私が紹介するいくつかのCSSが中心の常用方法で、異なる情況の下で柔軟に選んで、最も良い効果を達成することを保証することができます.
一、水平中央
text-align: center;
を使用して、ブロックの親コンテナの行内要素を中央に配置する.HTML:
inline/inline-block/inline-table/inline-flex
CSS:
.father-div {
text-align: center;
}
.inline-center {
background-color: red;
}
text-align: center;
この方法はinline/inline-block/inline-table/inline-flex
などの元素にしか作用しないことに注意しなければならない.margin: 0 auto;
HTML:
CSS:
.center {
background-color: red;
width: 100px;
height: 100px;
margin: 0 auto;
}
ブロックレベル要素に対して
margin: 0 auto;
を使用して水平方向に中央に配置するには、中央要素の幅を設定することに注意してください.高さは直接設定してもよいし、内容によって広げてもよい.positionを使用してエレメントを中央に配置するには、親エレメントに
position: relative;
HTMLを設定しながら、中央エレメントの幅を設定する必要があります.
CSS:
.father-div {
position: relative;
}
.center {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
left: 50%;
margin-left: -50px;
}
この方法は、親要素が
position: relative;
に設定されている場合に、中央要素をposition: absolute;
に設定するとともに、中央要素の幅を設定し、その後left: -50%
に設定し、最後にmargin-left
を追加し、値が負の幅の半分にする必要がある.justify-content:center;
主軸が中央に位置しています.HTML:
CSS:
.father-div {
display: flex;
justify-content: center;
}
.center {
width: 100px;
height: 100px;
background-color: red;
}
また、flexレイアウトを使用して要素を中心にして要素の幅を設定せずに、内容で広げることができます.
HTML:
CSS:
.father-div {
position: relative;
}
.center {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
left: 50%;
float: left;
transform: translateX(-50%);
}
transformと同様に、中央要素の幅を設定する必要はありません.
二、垂直中央
line-height
をheight
と同じHTML:
centercentercentercentercentercentercentercentercentercentercenter
CSS:
.father-div {
height: 100px;
background-color: red;
}
.center {
line-height: 100px;
}
vertical-align
この方法を使用するには、中央要素の親要素にdisplay: table;
を追加し、中央要素にdisplay: table-cell;
を追加し、その後、vertical-align
の属性の値をmiddleに設定する必要があります.HTML:
centercentercentercentercentercentercentercentercentercentercenter
CSS:
.father-div {
height: 100px;
background-color: red;
display: table;
}
.center {
display: table-cell;
vertical-align: middle;
}
CSS:
.father-div {
width: 300px;
height: 300px;
background-color: red;
position: relative;
}
.center {
width: 100px;
height: 100px;
background-color: yellow;
position: absolute;
top: 50%;
margin-top: -50px;
}
HTML:
transformtransformtransformtransform
CSS:
.father-div {
width: 300px;
height: 300px;
background-color: red;
position: relative;
}
.center {
background-color: yellow;
position: absolute;
top: 50%;
transform: translateY(-50%);
}
CSS 3のtransformプロパティを使用すると、開発者は中央要素の幅を設定しないことができます.
三、水平垂直中央
margin:0 auto
が水平中央を実現できることについて述べたが、現在、margin:auto
と同様に水平垂直中央を実現することができるようになった.HTML:
CSS:
.absolute-center {
background-color: red;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 100px;
height: 100px;
}
これにより
.absolute-center
の水平垂直中央を実現できますが、絶対位置決め中央を使用するには以下の点に注意してください.px、em
またはmin-/max-高さのパーセントを使用することもできます.overflow:hidden
を設定することが望ましい.要素の水平中央と垂直中央の内容ではposition位置決めを用いて要素の中央を実現することについて述べたが,両者を組み合わせると水平垂直を実現できるようになった.
HTML:
CSS:
.father-div {
width: 300px;
height: 300px;
background-color: red;
position: relative;
}
.center {
width: 100px;
height: 100px;
background-color: yellow;
position: absolute;
top: 50%;
margin-top: -50px;
left: 50%;
margin-left: -50px;
}
同様に、CSS 3のtransformプロパティを使用して、要素の水平垂直中央を実現することもできます.HTML:
CSS:
.father-div {
width: 300px;
height: 300px;
background-color: red;
position: relative;
}
.center {
background-color: yellow;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
transformプロパティを使用すると、コンテンツを使用して要素を拡張し、要素の設定によって決定される幅を避けることができます.
以上は私が紹介するいくつかのCSSが中心の常用方法で、異なる情況の下で柔軟に選んで、最も良い効果を達成することを保証することができます.