CSS
垂直センタリング
サーチ…
備考
これは、要素の寸法( width
とheight
)が不明または動的でない場合に使用されます。
Flexboxは、ユーザーインターフェイスの設計に最適化されているため、他のすべてのオプションよりも使用することをお勧めします。
ディスプレイのセンタリング:テーブル
HTML:
<div class="wrapper">
<div class="outer">
<div class="inner">
centered
</div>
</div>
</div>
CSS:
.wrapper {
height: 600px;
text-align: center;
}
.outer {
display: table;
height: 100%;
width: 100%;
}
.outer .inner {
display: table-cell;
text-align: center;
vertical-align: middle;
}
トランスフォームによるセンタリング
HTML:
<div class="wrapper">
<div class="centered">
centered
</div>
</div>
CSS:
.wrapper {
position: relative;
height: 600px;
}
.centered {
position: absolute;
z-index: 999;
transform: translate(-50%, -50%);
top: 50%;
left: 50%;
}
Flexboxによるセンタリング
HTML:
<div class="container">
<div class="child"></div>
</div>
CSS:
.container {
height: 500px;
width: 500px;
display: flex; // Use Flexbox
align-items: center; // This centers children vertically in the parent.
justify-content: center; // This centers children horizontally.
background: white;
}
.child {
width: 100px;
height: 100px;
background: blue;
}
行の高さによるテキストのセンタリング
HTML:
<div class="container">
<span>vertically centered</span>
</div>
CSS:
.container{
height: 50px; /* set height */
line-height: 50px; /* set line-height equal to the height */
vertical-align: middle; /* works without this rule, but it is good having it explicitly set */
}
注意:このメソッドは、 1行のテキストを垂直方向にのみ配置します 。ブロック要素が正しく配置されることはなく、新しい行に改行された場合は2つの非常に長い行のテキストが表示されます。
ポジションでセンタリング:絶対
HTML:
<div class="wrapper">
<img src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>
CSS:
.wrapper{
position:relative;
height: 600px;
}
.wrapper img {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
他の画像を中心にしたい場合は、その要素の高さと幅を指定する必要があります。
HTML:
<div class="wrapper">
<div class="child">
make me center
</div>
</div>
CSS:
.wrapper{
position:relative;
height: 600px;
}
.wrapper .child {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 200px;
height: 30px;
border: 1px solid #f00;
}
擬似要素によるセンタリング
HTML:
<div class="wrapper">
<div class="content"></div>
</div>
CSS:
.wrapper{
min-height: 600px;
}
.wrapper:before{
content: "";
display: inline-block;
height: 100%;
vertical-align: middle;
}
.content {
display: inline-block;
height: 80px;
vertical-align: middle;
}
このメソッドは、さまざまな高さの.content
が.wrapper
内側に.wrapper
されている場合に最もよく使用されます。 .content
の高さが.wrapper
のmin-heightを超えたときに.wrapper
の高さが拡大するようにし.content
。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow