Mam div, którego szerokość wynosi 100%.
Chciałbym wyśrodkować przycisk w środku, jak mogę to zrobić?
<div style="width:100%; height:100%; border: 1px solid">
<button type="button">hello</button>
</div>
Mam div, którego szerokość wynosi 100%.
Chciałbym wyśrodkować przycisk w środku, jak mogę to zrobić?
<div style="width:100%; height:100%; border: 1px solid">
<button type="button">hello</button>
</div>
Odpowiedzi:
Zaktualizowana odpowiedź
Aktualizacja, ponieważ zauważyłem, że jest to aktywna odpowiedź, jednak Flexbox będzie teraz właściwym podejściem.
Demo na żywo
Wyrównanie w pionie i poziomie.
Tylko poziomo (o ile główna oś flex jest pozioma, co jest domyślne)
Oryginalna odpowiedź przy użyciu stałej szerokości i bez Flexbox
Jeśli oryginalny plakat chce wyrównywania w pionie i środku jest dość łatwy dla stałej szerokości i wysokości przycisku, spróbuj wykonać następujące czynności
Demo na żywo
CSS
tylko do wyrównania w poziomie użyj albo
lub
źródło
Możesz po prostu:
Lub możesz to zrobić w ten sposób:
Pierwszy z nich wyśrodkuje wszystko w środku div. Drugi wyśrodkuje wyrównanie tylko przycisku.
źródło
zrobione:
Aktualizacja : Jeśli OP szuka środka poziomego i pionowego, ta odpowiedź zrobi to dla elementu o stałej szerokości / wysokości.
źródło
Margines: 0 auto; jest poprawną odpowiedzią tylko dla centrowania poziomego. Do centrowania w obie strony działa coś takiego, używając jquery:
Aktualizacja ... pięć lat później można użyć Flexboksa na nadrzędnym elemencie DIV, aby łatwo wyśrodkować przycisk zarówno w poziomie, jak i w pionie.
W tym wszystkie prefiksy przeglądarki dla najlepszego wsparcia
Pokaż fragment kodu
źródło
Z podanymi ograniczonymi szczegółami założę najprostszą sytuację i powiem, że możesz użyć
text-align: center
:http://jsfiddle.net/pMxty/
źródło
Korzystanie z Flexbox
A następnie dodając klasę do przycisku.
źródło
Powinieneś zacząć od prostoty, proszę:
najpierw masz początkową pozycję tekstu lub przycisku:
Dodając ten wiersz kodu css do znacznika h2 lub znacznika div, który przechowuje znacznik przycisku
Ostatecznie Kod wyniku będzie:
źródło
Przekroczyłem to i pomyślałem, że zostawię również rozwiązanie, którego użyłem, które wykorzystuje
line-height
itext-align: center
wykonuje zarówno centrowanie w pionie, jak i w poziomie:Kliknij tutaj, aby uruchomić JSFiddle
źródło
Aby wyśrodkować
<button type = "button">
zarówno w pionie, jak iw poziomie, w obrębie<div>
której szerokość jest obliczana dynamicznie, jak w twoim przypadku, wykonaj następujące czynności:text-align: center;
na zawijanie<div>
: spowoduje to wyśrodkowanie przycisku przy każdej zmianie rozmiaru<div>
(a raczej okna)W przypadku wyrównania w pionie należy ustawić
margin: valuepx;
przycisk. Jest to reguła obliczaniavaluepx
:valuepx = (wrappingDIVheight - buttonHeight)/2
Oto demo JS Bin .
źródło
Bardzo prosta odpowiedź, która będzie obowiązywać w większości przypadków, polega na ustawieniu marginesu
0 auto
i ustawieniu wyświetlacza nablock
. Możesz zobaczyć, jak wycentrowałem mój przycisk w mojej wersji demonstracyjnej na CodePenźródło
Najłatwiej jest wprowadzić go jako „div”, nadać mu „margines: 0 auto”, ale jeśli chcesz, aby był wyśrodkowany, musisz nadać mu szerokość
źródło
Responsywna opcja CSS, aby wyśrodkować przycisk w pionie i poziomie, nie przejmując się wielkością elementu nadrzędnego (używając haczyków atrybutów danych w celu zapewnienia przejrzystości i separacji) :
HTML
CSS
Fiddle: https://jsfiddle.net/crrollyson/zebo1z8f/
źródło
Elastyczny sposób na wyśrodkowanie przycisku w div:
źródło
Załóżmy, że div to #div, a przycisk to #b przycisk:
Następnie jak zwykle zagnieżdż przycisk w div.
źródło