回答:
設定しtext-align:center;
、親のdivに、とmargin:auto;
子のdivに。
#parent {
text-align:center;
background-color:blue;
height:400px;
width:600px;
}
.block {
height:100px;
width:200px;
text-align:left;
}
.center {
margin:auto;
background-color:green;
}
.left {
margin:auto auto auto 0;
background-color:red;
}
.right {
margin:auto 0 auto auto;
background-color:yellow;
}
<div id="parent">
<div id="child1" class="block center">
a block to align center and with text aligned left
</div>
<div id="child2" class="block left">
a block to align left and with text aligned left
</div>
<div id="child3" class="block right">
a block to align right and with text aligned left
</div>
</div>
これは、ほとんどすべてを集中させるための優れたリソースです。
http://howtocenterincss.com/
text-align
は<i>
要素に対して機能しないようです。クラスにそれを与える..
display: table-cell
またはflexbox
このため。追加したリンクをご覧ください。
実際、これはCSS3 フレックスボックスで非常に簡単です。
.flex-container{
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6, BB7 */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Safari 6.1+. iOS 7.1+, BB10 */
display: flex; /* NEW, Spec - Firefox, Chrome, Opera */
justify-content: center;
align-items: center;
width: 400px;
height: 200px;
background-color: #3498db;
}
.inner-element{
width: 100px;
height: 100px;
background-color: #f1c40f;
}
<div class="flex-container">
<div class="inner-element"></div>
</div>
この回答を書いたとき、私はOP編集を読んでいないようです。上記のコードはすべての内部要素を(それらの間で重複することなく)中央に配置しますが、OPは他の内部要素ではなく特定の要素のみを中央に配置することを望んでいます。したがって、@ Warfaceの2番目の答えはより適切ですが、垂直方向の中央揃えが必要です。
.flex-container{
position: relative;
/* Other styling stuff */
width: 400px;
height: 200px;
background-color: #3498db;
}
.inner-element{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
/* or 3d alternative if you will add animations (smoother transitions) */
transform: translate3d(-50%,-50%,0);
/* Other styling stuff */
width: 100px;
height: 100px;
background-color: #f1c40f;
}
<div class="flex-container">
<p>Other inner elements like this follows the normal flow.</p>
<div class="inner-element"></div>
</div>
CSS
body{
text-align:center;
}
.divWrapper{
width:960px //Change it the to width of the parent you want
margin: 0 auto;
text-align:left;
}
HTML
<div class="divWrapper">Tada!!</div>
これはdivを中央に配置する必要があります
2016-HTML5 + CSS3メソッド
CSS
div#relative{
position:relative;
}
div#thisDiv{
position:absolute;
left:50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
}
HTML
<div id="relative">
<div id="thisDiv">Bla bla bla</div>
</div>
バイオリン
text-align:center;
親divのトリックを行う必要があります
特定の子のみを中央に配置するには:
.parent {
height: 100px;
background-color: gray;
position: relative;
}
.child {
background-color: white;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 20px;
height:20px;
margin: auto;
}
<div class="parent">
<span class="child">hi</span>
</div>
または、フレックスも使用できますが、すべての子が中心になります
.parent {
height: 100px;
background-color: gray;
display: flex;
justify-content: center;
align-items: center;
}
.child {
background-color: white;
}
<div class="parent">
<span class="child">hi</span>
</div>
divは固定幅ですか、それとも流動幅ですか?どちらの方法でも、流体の幅には次を使用できます。
#element { /* this is the child div */
margin-left:auto;
margin-right:auto;
/* Add remaining styling here */
}
または、親divをに設定しtext-align:center;
、子divをに設定することもできますtext-align:left;
。
またleft:50%;
、divがに設定されてposition:absolute;
いる場合は、ページ全体に合わせて中央揃えします。あなたがdivをleft:50%;
それに設定するならば、それは親divの幅に関連してそれをするべきです。固定幅の場合は、次のようにします。
#parent {
width:500px;
}
#child {
left:50%;
margin-left:-100px;
width:200px;
}
親divを与えるだけ position: relative
CSS3を使用する場合:
position:absolute;
left:calc(50% - PutTheSizeOfTheHalfOfYourElementpx);
要素の幅に合わせてパーセンテージを取得する方法を見つけるために、さらに検索を行うことをお勧めします。
まず、left:50%で親divを基準にして中央に配置できますが、そのためにはCSSの配置を学習する必要があります。
多くからの1つの可能な解決策は、次のようなことをすることです
div.parent { text-align:center; } //will center align every thing in this div as well as in the children element
div.parent div { text-align:left;} //to restore so every thing would start from left
中央に配置するdivが相対的に配置されている場合は、単に行うことができます
.mydiv { position:relative; margin:0 auto; }
text-align:center;
子要素がインライン(例えばされていない場合div
、table
など)私は内部でそれを包むだろうdiv
か、p
とラッパーのテキスト整列CSSプロパティを作るの中心に等しいです。
<div id="container">
This text is aligned to the left.<br>
So is this text.<br>
<div style="text-align: center">
This <button>button</button> is centered.
</div>
This text is still aligned left.
</div>
要素がブロック(あればそうでない場合、display: block
例えば、A div
またはp
固定幅)、私はautoにその余白の左右のCSSプロパティを設定すると思います。
<div id="container">
This text is aligned to the left.<br>
So is this text.<br>
<div style="margin: 0 auto; width: 200px; background: red; color: white;">
My parent is centered.
</div>
This text is still aligned left.
</div>
もちろん、 text-align: center
、ラッパー要素にをして、コンテンツを中央揃えにます。
IMHOはOPの問題を解決する方法ではないため、位置付けについては気にしませんが、このリンクを確認してください。非常に役立ちます。
別の解決策を見つけました
<style type="text/css">
.container {
width:600px; //set how much you want
overflow: hidden;
position: relative;
}
.containerSecond{
position: absolute;
top:0px;
left:-500%;
width:1100%;
}
.content{
width: 800px; //your content size
margin:0 auto;
}
</style>
そして体内で
<div class="container">
<div class="containerSecond">
<div class="content"></div>
</div>
</div>
これにより、コンテナーが大きくても小さくても、コンテンツdivが中央に配置されます。この場合、コンテンツは中央揃えにならないようにコンテナの1100%より大きくする必要がありますが、その場合は、containerSecondを大きくすることで機能します。
たとえば、メインのコンテンツdivの中にある記事のdivがあります。記事の中に画像があり、その画像の下にボタンがあります。次のようなスタイルです。
。論文 {
width: whatever;
text-align: center;
float: whatever (in case you got more articles in a row);
margin: give it whatever margin you want;
} 。論文 {
}
/ *記事の中で画像を中央揃えにしたい* /
.article img {
float: none;
margin: 0 auto;
padding: give it a padded ridge if you want;
}
/ *これで、同じ記事要素のこの画像の下に、read moreなどのボタンがあります。もちろん、レスポンシブデザイン内にある場合は、emまたは%を操作する必要があります* /
.button {
background: #whatever color:
padding: 4.3567%; /*Instead of fixed width*/
text-align: cente;
font: whatever;
max-width: 41.4166%;
float: none;
margin: 0 auto; /* You could make the zero into any margin you want on the top and bottom of this button.. Just notice the float: none property.. this wil solve most your issues, also check if maybe position and displaay might mess up your code..*/
}
幸運を
div内の要素を中央に配置し、分割サイズを気にしない場合は、Flexパワーを使用できます。私はflexを使用することを好み、要素に正確なサイズを使用しません。
<div class="outer flex">
<div class="inner">
This is the inner Content
</div>
</div>
ご覧のとおり、Outer divはFlexコンテナーであり、InnerはFlexアイテムである必要がありますflex: 1 1 auto;
。これにより、理解を深めるために、この単純なサンプルを見ることができます。http://jsfiddle.net/QMaster/hC223/
この助けを願っています。
私は魔法が欲しいです。
html, body {
height: 100%;
}
.flex-container{
display: -ms-flexbox;
display: -webkit-box;
display: flex;
-ms-flex-align: center;
-ms-flex-pack: center;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
}
<div class="flex-container">
<div>Content</div>
</div>
<html>
<head>
</head>
<style>
.out{
width:200px;
height:200px;
background-color:yellow;
}
.in{
width:100px;
height:100px;
background-color:green;
margin-top:50%;
margin-left:50%;
transform:translate(-50%,50%);
}
</style>
<body>
<div class="out">
<div class="in">
</div>
</div>
</body>
</html>