幅が100%のdivがあります。
ボタンを中央に配置したいのですが、どうすればよいですか?
<div style="width:100%; height:100%; border: 1px solid">
<button type="button">hello</button>
</div>
幅が100%のdivがあります。
ボタンを中央に配置したいのですが、どうすればよいですか?
<div style="width:100%; height:100%; border: 1px solid">
<button type="button">hello</button>
</div>
回答:
更新された回答
アクティブな回答だと気付いたため更新していますが、現在はFlexboxが適切な方法です。
垂直方向と水平方向の配置。
#wrapper {
display: flex;
align-items: center;
justify-content: center;
}
ちょうど水平(主フレックス軸がデフォルトである水平である限り)
#wrapper {
display: flex;
justify-content: center;
}
固定幅を使用し、フレックスボックスを使用しない元の回答
元のポスターで垂直方向と中央揃えが必要な場合は、ボタンの幅と高さを固定するのが非常に簡単です。以下を試してください。
CSS
button{
height:20px;
width:100px;
margin: -20px -50px;
position:relative;
top:50%;
left:50%;
}
ちょうど水平方向の配置のいずれかを使用します
button{
margin: 0 auto;
}
または
div{
text-align:center;
}
あなたはただ作ることができます:
<div style="text-align: center; border: 1px solid">
<input type="button" value="button">
</div>
または、代わりに次のようにすることもできます。
<div style="border: 1px solid">
<input type="button" value="button" style="display: block; margin: 0 auto;">
</div>
1つ目は、div内のすべてを中央揃えにします。もう1つはボタンだけを中央揃えにします。
et voila:
button {
width: 100px; // whatever your button's width
margin: 0 auto; // auto left/right margins
display: block;
}
更新:OPが水平および垂直の中心を探している場合、この回答は固定の幅/高さの要素に対してそれを行います。
マージン:0自動; 水平方向のセンタリングのみの正解です。jqueryを使用して、次のようなものが機能する両方の方法を集中させるには:
var cenBtn = function() {
var W = $(window).width();
var H = $(window).height();
var BtnW = insert button width;
var BtnH = insert button height;
var LeftOff = (W / 2) - (BtnW / 2);
var TopOff = (H / 2) - (BtnH /2);
$("#buttonID").css({left: LeftOff, top: TopOff});
};
$(window).bind("load, resize", cenBtn);
更新... 5年後、親DIV要素でflexboxを使用して、ボタンを水平方向と垂直方向の両方に簡単に中央揃えできます。
最良のサポートのために、すべてのブラウザプレフィックスを含みます
div {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-align : center;
-moz-box-align : center;
-ms-flex-align : center;
-webkit-align-items : center;
align-items : center ;
justify-content : center;
-webkit-justify-content : center;
-webkit-box-pack : center;
-moz-box-pack : center;
-ms-flex-pack : center;
}
限られた詳細が提供されているので、私は最も単純な状況を想定し、あなたが使用できると言いますtext-align: center
:
ここに行くのは簡単です。
最初に、テキストまたはボタンの初期位置があります。
<div style="background-color:green; height:200px; width:400px; margin:0 0 0 35%;">
<h2> Simple Text </h2>
<div>
<button> Simple Button </button>
</div>
</div>
このcssコード行をh2タグまたはボタンタグを保持するdivタグに追加する
スタイル: "text-align:center;"
最終的に結果コードは次のようになります:
<div style="background-color:green; height:200px; width:400px; margin:0 0 0 35%;">
<h2 style="text-align:center;"> Simple Text </h2> <!-- <<--- here the changes -->
<div style="text-align:center"> <!-- <<--- here the changes -->
<button> Simple Button </button>
</div>
</div>
これに遭遇し、私が使用した解決策も残しておくと思いました。これはline-height
、text-align: center
垂直方向と水平方向の両方のセンタリングを利用して実行します:
あなたの場合のように動的に計算される幅の<button type = "button">
中で垂直と水平の両方を中央に配置するには、次の<div>
ようにします:
text-align: center;
ラッピングに設定し<div>
ます。これにより、<div>
(またはウィンドウではなく)サイズを変更するたびにボタンが中央に配置されます垂直方向の配置についてはmargin: valuepx;
、ボタンを設定する必要があります。これは、計算方法に関するルールvaluepx
です。
valuepx = (wrappingDIVheight - buttonHeight)/2
こちらがJS Binのデモです。
最も簡単なことは、「div」として入力することです。「margin:0 auto」を指定しますが、中央に配置したい場合は、幅を指定する必要があります。
Div{
Margin: 0 auto ;
Width: 100px ;
}
親要素のサイズに関係なくボタンを垂直方向と水平方向に中央に配置するレスポンシブCSSオプション(明確化と分離の懸念のためにデータ属性フックを使用):
HTML
<div data-element="card">
<div data-container="button"><button>CTA...</button></div>
</div>
CSS
[data-container="button"] {
position: absolute;
top: 50%;
text-align: center;
width: 100%;
}
ボタンをdivの中央に配置する応答的な方法:
<div
style="display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rem;">
<button type="button" style="height: 10%; width: 20%;">hello</button>
</div>