[解決済み] divを別のdivの中に縦に中央配置する [重複] [重複
質問
他のdivの中にあるdivを中央寄せにしたい。
<div id="outerDiv">
<div id="innerDiv">
</div>
</div>
現在使っているCSSはこれです。
#outerDiv {
width: 500px;
height: 500px;
position: relative;
}
#innerDiv {
width: 284px;
height: 290px;
position: absolute;
top: 50%;
left: 50%;
margin-top: -147px;
margin-left: -144px;
}
ご覧の通り、私が今使っている方法は、幅と高さが異なる
#innerDiv
. 幅や高さが変われば
margin-top
と
margin-left
の値を指定します。を中央に配置するために使用できる一般的な解決策はありますか?
#innerDiv
そのサイズに関係なく?
を使うことがわかった。
margin: auto
は水平に整列させることができます。
#innerDiv
を中央に配置します。しかし、垂直方向の整列はどうでしょうか?
どのように解決するのですか?
垂直方向の中央揃えは有効ですが、そのためには
table-cell
を親要素に、そして
inline-block
を子局で使用します。
この解決策は、IE6 & 7ではうまくいきません。
それらのためには、あなた方の方法がより安全です。
しかし、あなたの質問にはCSS3とHTML5のタグが付けられているので、あなたは最新のソリューションを使うことに抵抗はないのではと思ったのです。
古典的な解決策(テーブルレイアウト)
これが私の当初の答えでした。これは今でも問題なく動作し、最も広く支持されている解決策です。テーブルレイアウトは レンダリングパフォーマンスに影響を与える そのため、より現代的なソリューションのいずれかを使用することをお勧めします。
でテストしています。
- FF3.5以上
- FF4+の場合
- サファリ5以上
- Chrome 11 以上
- IE9以上
HTML
<div class="cn"><div class="inner">your content</div></div>
CSS
.cn {
display: table-cell;
width: 500px;
height: 500px;
vertical-align: middle;
text-align: center;
}
.inner {
display: inline-block;
width: 200px; height: 200px;
}
モダンソリューション(トランスフォーム)
トランスフォームは は、現在ではかなりよくサポートされています。 をより簡単に行う方法があります。
CSS
.cn {
position: relative;
width: 500px;
height: 500px;
}
.inner {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%,-50%);
width: 200px;
height: 200px;
}
私のお気に入りのモダンなソリューション(フレックスボックス)です。
フレックスボックスをどんどん使うようになった また、サポートが充実しています。 最も簡単な方法です。
CSS
.cn {
display: flex;
justify-content: center;
align-items: center;
}
その他の例&amp;可能性。 1つのページですべてのメソッドを比較する
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] HTMLで複数選択を許さないリストボックスを作るには?
-
[解決済み] CSSでテキストを垂直方向にセンタリングするには?[重複しています]
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] div 内の画像を縦に並べる方法
-
[解決済み] divの中のテキストを縦に揃えるにはどうしたらいいですか?
-
[解決済み] Sublime Text 2を使ってHTMLコードを再フォーマットするにはどうしたらいいですか?
-
[解決済み] divブロック内のテキストを(水平方向と垂直方向に)センタリングするにはどうすればよいですか?
-
[解決済み] CSS Flexboxで、"justify-items "と "justify-self "プロパティはなぜないのですか?
-
[解決済み】あるdivの上に別のdivを重ねる方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 横型リストアイテム
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] 入力テキストボックスの値を取得する
-
[解決済み] ボディの高さをブラウザの高さの100%にする
-
[解決済み] CSSだけでリンクを無効化する方法
-
[解決済み] 静的な HTML ページにファビコンを追加する
-
[解決済み] Do I use <img>, <object>, or <embed> for SVG files?
-
[解決済み] How to vertically center <div> inside the parent element with CSS? [duplicate]