800 ピクセルに設定されたdiv
タグがあります。ブラウザーの幅が800 ピクセルを超える場合、を引き伸ばすべきではありませんが、ページの中央に表示する必要があります。width
div
27 に答える
<body>
<div style="width:800px; margin:0 auto;">
centered content
</div>
</body>
position: absolute
次にtop:50%
、left:50%
上端を画面の垂直方向の中央に配置し、左端を水平方向の中央に配置します。次にmargin-top
、div の高さの負の値、つまり -100 を追加すると、上に 100 シフトされmargin-left
ます。これdiv
により、ページのちょうど中央に が表示されます。
#outPopUp {
position: absolute;
width: 300px;
height: 200px;
z-index: 15;
top: 50%;
left: 50%;
margin: -100px 0 0 -150px;
background: red;
}
<div id="outPopUp"></div>
Flexboxソリューションは、2015 年以降の導入方法です。justify-content: center
親要素がコンテンツをその中心に揃えるために使用されます。
HTML
<div class="container">
<div class="center">Center</div>
</div>
CSS
.container {
display: flex;
justify-content: center;
}
出力
.container {
display: flex;
justify-content: center;
}
.center {
width: 400px;
padding: 10px;
background: #5F85DB;
color: #fff;
font-weight: bold;
font-family: Tahoma;
}
<div class="container">
<div class="center">Centered div with left aligned text.</div>
</div>
縦または横の中央に配置したいということですか?を 800 ピクセルに指定し、がそれより大きい
height
場合に div が伸びないようにしたいと言いました...width
margin: auto;
水平方向に中央揃えするには、CSSで属性を使用できます。また、body
andhtml
要素にマージンやパディングがないことを確認する必要があります。
html, body { margin: 0; padding: 0; }
#centeredDiv { margin-right: auto; margin-left: auto; width: 800px; }
<div></div>
div {
display: table;
margin-right: auto;
margin-left: auto;
}
Internet Explorer 6 でも正しく動作させるには、次のようにする必要があります。
HTML
<body>
<div class="centered">
centered content
</div>
</body>
CSS
body {
margin: 0;
padding: 0;
text-align: center; /* !!! */
}
.centered {
margin: 0 auto;
text-align: left;
width: 800px;
}
次のように使用することもできます。
<div style="width: 60%; margin: 0px auto;">
Your contents here...
</div>
コンテンツのサイズを固定せずに、親の内側で垂直方向および水平方向に中央揃えされた Div
このページでは、いくつかの解決策の概要を説明しています。ここで共有するにはコードが多すぎますが、可能なことを示しています...
個人的には、有名な transform translate -50% トリックを使用したこのソリューションが最も気に入っています。要素の固定 (% または px) および未定義の高さと幅の両方でうまく機能します。
コードは次のように単純です。
HTML:
<div class="center"><div>
CSS:
.center {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%); /* for IE 9 */
-webkit-transform: translate(-50%, -50%); /* for Safari */
/* optional size in px or %: */
width: 100px;
height: 100px;
}
ここで、それが機能することを示すフィドル
center
タグの直後にタグを使用し、body
終了のcenter
直前でタグをbody
終了します。
<body>
<center>
... Your code here ...
</center>
</body>
これは、私が試したすべてのブラウザでうまくいきました。
divページのセンタリングL&Rを妨げる古いコードからのその他の既存のセットアップは次のとおりです。
- 外部スタイルシートリンクに隠されている他のクラス。
- のようなものに埋め込まれた他のクラス
img
(古い外部CSS印刷形式コントロールなど)。 - IDやCLASSESを含む凡例コードは、名前付きクラスと競合し
div
ます。
div 幅を指定せずにセンタリング:
body {
text-align: center;
}
body * {
text-align: initial;
}
body div {
display: inline-block;
}
これは<center>
tag のようなものですが、次の点を除きます。
- のすべての直接インラインの子要素 (例:
<h1>
)<center>
も中央に配置されます - inline-block 要素は
display:block
、ブラウザーのデフォルトに従って (設定と比較して)異なるサイズを持つことができます
以下のコードを使用して、div ボックスを中央に配置します。
.box-content{
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
position: absolute;
width: 800px;
height: 100px;
background-color: green;
}
<div class="box-content">
</div>
1行のテキストだけでなく、通常のコンテンツがある場合、私が知っている唯一の理由は、マージンを計算することです.
次に例を示します。
HTML
<div id="supercontainer">
<div id="middlecontainer">
<div class="common" id="first">first</div>
<div id="container">
<div class="common" id="second">second</div>
<div class="common" id="third">third</div>
</div>
</div>
</div>
CSS
body {
margin: 0;
padding: 0;
}
.common {
border: 1px solid black;
}
#supercontainer {
width: 1200px;
background: aqua;
float: left;
}
#middlecontainer {
float: left;
width: 104px;
margin: 0 549px;
}
#container {
float: left;
}
#first {
background: red;
height: 102px;
width: 50px;
float: left;
}
#second {
background: green;
height: 50px;
width: 50px;
}
#third {
background: yellow;
height: 50px;
width: 50px;
}
だから、#supercontainer
はあなた"whole page"
で、それwidth
は1200px
です。
#middlecontainer
div
あなたのサイトのコンテンツです。ですwidth
102px
。コンテンツのサイズがわかっている場合はwidth
、ページのサイズを 2 に分割し、結果からコンテンツの半分を差し引く必要がありますwidth
: 1200 / 2 - (102 / 2) = 549;
はい、これはCSS の重大な失敗であることもわかりました。
.middle {
margin:0 auto;
text-align: center;
}
/* div を中央に移動します */
これはInternetExplorerでも機能しますが、自動マージンは機能しません。
.centered {
position: absolute;
display: inline-block;
left: -500px;
width: 1000px;
margin: 0 50%;
}
<body>
<div style=" display: table; margin: 250 auto;">
In center
</div>
</body>
垂直位置を変更する場合は、値を 250 に変更すると、必要に応じてコンテンツを配置できます。幅やその他のパラメータを指定する必要はありません。