14 ответов:
Обновил Ответ
обновление, потому что я заметил, что это активный ответ, однако Flexbox будет правильным подходом сейчас.
вертикальное и горизонтальное выравнивание.
#wrapper { display: flex; align-items: center; justify-content: center; }просто горизонтально (до тех пор, пока основная ось flex горизонтальна, что по умолчанию)
#wrapper { display: flex; justify-content: center; }оригинальный ответ с использованием фиксированной ширины и без flexbox
если оригинальный плакат хочет вертикального и центрового выравнивания его довольно легко для фиксированной ширины и высоты кнопки, попробуйте следующее
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;"> <input type="button" value="button"> </div>или вы могли бы сделать так
<div> <input type="button" value="button" style="display: block; margin: 0 auto;"> </div>первый центр выровняет все внутри div. Другой будет центрировать только кнопку.
и вуаля:
button { width: 100px; // whatever your button's width margin: 0 auto; // auto left/right margins }обновление: если OP ищет горизонтальный и вертикальный центр,ответ будет делать это для фиксированной ширины / высоты элемента.
Margin: 0 auto; является правильным ответом только для горизонтального центрирования. Для центрирования в обоих направлениях что-то вроде этого будет работать, используя 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);
обновление ... пять лет спустя, можно использовать flexbox на родительском элементе DIV, чтобы легко центрировать кнопку как по горизонтали, так и по вертикали.
включая все префиксы браузера, для лучшей поддержки
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; }#container { position: relative; margin: 20px; background: red; height: 300px; width: 400px; } #container 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-box-pack: center; -moz-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; justify-content: center; }<!-- using a container to make the 100% width and height mean something --> <div id="container"> <div style="width:100%; height:100%"> <button type="button">hello</button> </div> </div>
с ограниченной детализацией я предполагаю самую простую ситуацию и говорю, что вы можете использовать
text-align: center:
С помощью flexbox
.Center { display: flex; align-items: center; justify-content: center; }и затем добавление класса к вашей кнопке.
<button class="Center">Demo</button>
наткнулся на это и подумал, что я оставлю решение, которое я использовал, а также, который использует
line-heightиtext-align: centerдля вертикального и горизонтального центрирования:
в центр
<button type = "button">как по вертикали, так и по горизонтали в пределах<div>какая ширина вычисляется динамически, как в вашем случае, это то, что нужно сделать:
- Set
text-align: center;обертывания<div>: это будет центр кнопку всякий раз, когда вы измените размер<div>(точнее окно)для вертикального выравнивания вам нужно будет установить
margin: valuepx;для кнопки. Это правило о том, как рассчитатьvaluepx:
valuepx = (wrappingDIVheight - buttonHeight)/2здесь JS Bin demo.
проще всего ввести его как " 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, а button - #button:
#div { display: table-cell; width: 100%; height: 100%; text-align: center; vertical-align: center; } #button {}затем вставьте кнопку в div, как обычно.
вы должны принять его просто здесь вы идете:
сначала у вас есть начальная позиция вашего текста или кнопки:
<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 тег удерживает тег кнопки
стиль: "выравнивание текста: по центру;"
наконец, код результата будет:
<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>
супер простой ответ, который будет применяться в большинстве случаев, чтобы просто сделать установить маржу в
0 autoи установите дисплей вblock. Вы можете видеть, как я сосредоточил свою кнопку в моей демо на CodePen
отзывчивый способ центрировать кнопку в 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>



Comments