Spośród tych świetnych odpowiedzi chcę tylko podkreślić, że musisz nadać „#inner” „szerokość”, albo będzie to „100%”, i nie możesz powiedzieć, czy jest już wyśrodkowane.
Oczywiście, nie trzeba ustawić widthsię 50%. Działa dowolna szerokość mniejsza niż zawierająca <div>. To margin: 0 autowłaśnie robi faktyczne centrowanie.
Do centrowania w pionie zwykle używam „wysokość linii” (wysokość linii == wysokość). To proste i przyjemne, ale działa tylko z tekstem o treści jednego wiersza :)
Nicolas Guillaume
98
Musisz użyć tagu! DOCTYPE na swojej stronie HTML, aby działał dobrze w IE.
Fabio
15
Pamiętaj, że może być konieczne dodanie „float: none;” dla #inner.
Mert Mertce,
15
Ustawiasz także górny i dolny margines na 0, co nie jest powiązane. margin-left: auto; margin-right: autoMyślę, że lepiej umieścić .
Emmanuel Touzery
13
Niekoniecznie margin:0 auto: może być margin: <whatever_vertical_margin_you_need> autodrugim marginesem poziomym.
JakowL,
1243
Jeśli nie chcesz ustawiać stałej szerokości na wewnętrznej stronie, divmożesz zrobić coś takiego:
@SabaAhang dla tego poprawna składnia byłaby float: none;i prawdopodobnie jest potrzebna tylko dlatego, że #inner odziedziczył floatjeden leftlub jeden rightz innego kodu CSS.
Doug McLean,
7
To miłe rozwiązanie. Wystarczy pamiętać, że wewnętrzna posiądą text-alignwięc może chcesz ustawić wewnętrzne-tych text-aligndo initiallub inną wartością.
Przeczytaj najpierw tę odpowiedź, zanim zaczniesz wdrażać to rozwiązanie.
cimmanon
4
Safari, jak na razie, nadal wymaga -webkitflagi dla schematu flexbox ( display: -webkit-flex;a -webkit-align-items: center;i -webkit-justify-content: center;)
Joseph Hansen
Zawsze myślę, że użycie kodu partii jest złą praktyką, na przykład w tym kodzie centruję div: display: table; margines: auto; proste i łatwe
simon
Czy to ja, czy ten fragment kodu nie jest wyśrodkowany
Nie podoba mi się to rozwiązanie, ponieważ gdy wewnętrzny element jest zbyt szeroki dla ekranu, nie można przewijać całego elementu w poziomie. margines: 0 auto działa lepiej.
Aloso,
margines lewy: auto; margines z prawej: auto; wyśrodkowuje element na poziomie bloku
killscreen
Domyślna szerokość dla większości elementów na poziomie bloku to auto, która wypełnia dostępny obszar na ekranie. Samo wyśrodkowanie umieszcza go w tej samej pozycji, co lewe wyrównanie. Jeśli chcesz, aby był wyśrodkowany wizualnie, powinieneś ustawić szerokość (lub maksymalną szerokość, chociaż Internet Explorer 6 i wcześniejsze nie obsługują tego, a IE 7 obsługuje go tylko w trybie standardowym).
killscreen
228
Stworzyłem ten przykład, aby pokazać, jak pionowo i poziomoalign .
+1 za tę metodę, miałem właśnie odpowiedzieć. Pamiętaj, że musisz zadeklarować szerokość elementu, który chcesz wyśrodkować w poziomie (lub wysokość, jeśli wyśrodkujesz w pionie). Oto wyczerpujące wyjaśnienie: codepen.io/shshaw/full/gEiDt . Jedna z bardziej wszechstronnych i szeroko wspieranych metod centrowania elementów w pionie i / lub w poziomie.
stvnrynlds
6
Nie możesz używać wypełnienia w div, ale jeśli chcesz dać iluzję, użyj obramowania tego samego koloru.
Squirrl
Myślę, że aby ta metoda zadziałała, musisz ustawić
zi
212
Niektóre plakaty wspominały o CSS 3 sposób korzystania z centrum display:box.
Ta składnia jest nieaktualna i nie należy jej już używać. [Zobacz także ten post] .
Tak więc, dla kompletności, oto najnowszy sposób na wyśrodkowanie w CSS 3 za pomocą modułu elastycznego układu pól .
... a chcesz wyśrodkować swoje elementy w polu, oto czego potrzebujesz na elemencie nadrzędnym (.box):
.box {display: flex;flex-wrap: wrap;/* Optional. only if you want the items to wrap */justify-content: center;/* For horizontal alignment */align-items: center;/* For vertical alignment */}
.box {display: flex;flex-wrap: wrap;/* Optional. only if you want the items to wrap */justify-content: center;/* For horizontal alignment */align-items: center;/* For vertical alignment */}*{margin:0;padding:0;}
html,
body {height:100%;}.box {height:200px;display: flex;flex-wrap: wrap;justify-content: center;align-items: center;border:2px solid tomato;}.box div {margin:010px;width:100px;}.item1 {height:50px;background: pink;}.item2 {background: brown;height:100px;}.item3 {height:150px;background: orange;}
co rozumiesz przez „składnia jest nieaktualna”, czy jest przestarzała?
Konga Raju,
6
Specyfikacja Flexbox przeszła 3 główne zmiany. Najnowszy projekt pochodzi z września 2012 r., Który oficjalnie zastępuje wszystkie poprzednie projekty. Jednak obsługa przeglądarek jest nierówna (szczególnie stare przeglądarki Androida): stackoverflow.com/questions/15662578/...
cimmanon
To działało dla mnie w Chrome, gdy nie działała wersja Justina Polieya.
Vern Jensen
To nie jest „justify-content: center;” dla wyrównania w pionie i „wyrównaj-elementy: środek;” do wyrównania w poziomie?
Wouter Vanherck
3
@WouterVanherck zależy od flex-directionwartości. Jeśli jest to „wiersz” (domyślnie) - justify-content: center; oznacza to wyrównanie w poziomie (jak wspomniałem w odpowiedzi). Jeśli jest to „kolumna” - justify-content: center;oznacza wyrównanie w pionie.
Danield
140
Jeśli nie chcesz ustawić stałej szerokości i nie chcesz dodatkowego marginesu, dodaj display: inline-blockdo swojego elementu.
Przeczytaj najpierw tę odpowiedź, zanim zaczniesz wdrażać to rozwiązanie.
cimmanon
88
Ustaw widthi ustaw margin-lefti margin-rightna auto. Dotyczy to jednak tylko poziomu . Jeśli chcesz na dwa sposoby, po prostu zrób to na dwa sposoby. Nie bój się eksperymentować; to nie tak, że coś zepsujesz.
Niedawno musiałem wyśrodkować „ukryty” div (tj. display:none;), Który zawierał formularz, który musiał być wyśrodkowany na stronie. Napisałem następujący kod jQuery, aby wyświetlić ukryty div, a następnie zaktualizuj zawartość CSS do automatycznie wygenerowanej szerokości tabeli i zmień margines, aby go wyśrodkować. (Przełączanie wyświetlania jest uruchamiane przez kliknięcie łącza, ale ten kod nie był konieczny do wyświetlenia).
UWAGA: Udostępniam ten kod, ponieważ Google wprowadził mnie do tego rozwiązania przepełnienia stosu i wszystko działałoby, z wyjątkiem tego, że ukryte elementy nie mają żadnej szerokości i nie można ich zmienić / wyśrodkować, dopóki nie zostaną wyświetlone.
Ta text-align:właściwość jest opcjonalna dla współczesnych przeglądarek, ale jest niezbędna w trybie dziwactwa przeglądarki Internet Explorer do obsługi starszych przeglądarek.
Nie ma potrzeby wyrównywania tekstu. Jest to całkowicie niepotrzebne.
Touhid Rahman
wyrównanie tekstu jest w rzeczywistości konieczne, aby działało w trybie szybkich przeglądarek IE, więc jeśli nie masz nic przeciwko dodaniu małego wyrażenia do obsługi starszych przeglądarek, pozostaw je tam. (IE8 z regułami IE8 i IE7 działają zarówno bez wyrównania tekstu, więc być może dotyczy to tylko IE6 i starszych)
Sztuczka polega na tym, że translateX(-50%)ustawia #innerelement o 50 procent na lewo od własnej szerokości. Możesz użyć tej samej sztuczki do wyrównania pionowego.
Oto skrzypce pokazujące wyrównanie w poziomie i pionie.
Konieczne mogą być również prefiksy dostawcy:-webkit-transform: translate(-50%,0); -moz-transform: translate(-50%,0); -ms-transform: translate(-50%,0); -khtml-transform: translate(-50%,0); -o-transform: translate(-50%,0);
Skippy le Grand Gourou
45
Chris Coyier, który napisał na swoim blogu doskonały post na temat „Centrowania w nieznanym”. Jest to zestaw wielu rozwiązań. Opublikowałem taki, który nie został zamieszczony w tym pytaniu. Ma większą obsługę przeglądarki niż rozwiązanie Flexbox i nie używasz tego, display: table;co mogłoby popsuć inne rzeczy.
/* This parent can be any width and height */.outer {
text-align: center;}/* The ghost, nudged to maintain perfect centering */.outer:before {
content:'.';
display:inline-block;
height:100%;
vertical-align: middle;
width:0;
overflow: hidden;}/* The element to be centered, can
also be of any width and height */.inner {
display:inline-block;
vertical-align: middle;
width:300px;}
div#outer {height:120px;background-color: red;}
div#inner {width:50%;height:100%;background-color: green;margin:0 auto;text-align: center;/* For text alignment to center horizontally. */line-height:120px;/* For text alignment to center vertically. */}
<divid="outer"style="width:100%;"><divclass="inner"> Foo Text </div><divclass="inner"> Foo Text </div><divclass="inner"> Foo Text </div><divclass="inner"></div><divclass="inner"></div><divclass="inner"></div><divclass="inner"></div><divclass="inner"></div><divclass="inner"> Foo Text </div></div>
Z mojego doświadczenia wynika, że najlepszym sposobem na wyśrodkowanie pudełka jest jedno i drugie wynika pionie, i poziomie jest użycie dodatkowego pojemnika i zastosowanie następujących właściwości:
Jak zauważa skrzypce, #inner musi mieć ustawioną szerokość.
Michael Terry,
#outernie potrzebuje żadnych, width:100%;jak <div>zawsze domyślnie width:100%. i nie text-align:centerjest wcale konieczne.
Mobarak Ali
27
Jeśli szerokość treści jest nieznana, możesz użyć następującej metody . Załóżmy, że mamy te dwa elementy:
.outer -- pełna szerokość
.inner - brak ustawionej szerokości (ale można określić maksymalną szerokość)
Załóżmy, że obliczona szerokość elementów wynosi odpowiednio 1000 pikseli i 300 pikseli. Postępować w następujący sposób:
Owinąć .inner środku.center-helper
Zrób .center-helperblok wbudowany; staje się tego samego rozmiaru co.inner co szerokość 300 pikseli.
Pchać .center-helper 50% w prawo w stosunku do jego rodzica; to pozostawia lewą stronę na 500 pikseli wrt. zewnętrzny.
Pchać .inner 50% w lewo względem jego rodzica; to umieszcza lewą stronę na -150 pikseli wrt. środkowy pomocnik, co oznacza, że jego lewa strona ma 500 - 150 = 350 pikseli wrt. zewnętrzny.
Ustaw przepełnienie na .outerukryte, aby zapobiec poziomemu paskowi przewijania.
Próbny:
body {font: medium sans-serif;}.outer {overflow: hidden;background-color: papayawhip;}.center-helper {display: inline-block;position: relative;left:50%;background-color: burlywood;}.inner {display: inline-block;position: relative;left:-50%;background-color: wheat;}
<divclass="outer"><divclass="center-helper"><divclass="inner"><h1>A div with no defined width</h1><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br>
Duis condimentum sem non turpis consectetur blandit.<br>
Donec dictum risus id orci ornare tempor.<br>
Proin pharetra augue a lorem elementum molestie.<br>
Nunc nec justo sit amet nisi tempor viverra sit amet a ipsum.</p></div></div></div>
#container {
display: table;
width:<width of your container>;
height:<height of your container>;}#inner {
width:<width of your center div>;
display: table-cell;
margin:0auto;
text-align: center;
vertical-align: middle;}
Spowoduje to również wyrównanie w #innerpionie. Jeśli nie chcesz, usuń właściwości displayi vertical-align;
Stosowanie text-align: centertreści śródliniowej jest wyśrodkowane w polu liniowym. Ponieważ jednak wewnętrzny div ma domyślnie width: 100%, musisz ustawić określoną szerokość lub użyć jednego z poniższych:
transform: translatepozwala modyfikować przestrzeń współrzędnych modelu formatowania wizualnego CSS. Za jego pomocą elementy mogą być tłumaczone, obracane, skalowane i pochylane. Do wyśrodkowania w poziomie wymaga position: absolutei left: 50%.
Tag <center>jest alternatywą HTML dla text-align: center. Działa na starszych przeglądarkach i na większości nowych, ale nie jest uważane za dobrą praktykę, ponieważ ta funkcja jest przestarzała i została usunięta ze standardów sieciowych.
wyrównywanie tekstu dla wyrównywania tekstu w kontenerze, a nie dla kontenera względem jego rodzica.
Lalit Kumar Maurya,
testuję to, mam problem z ustawieniem dziecka na środek, muszę, gdy masz więcej jednego dziecka, więcej marginesów czasu: 0 automatyczna odpowiedź na czcionkę, ale, wyśrodkuj tekst, dla rodzica spraw, aby to dziecko było na środku, nawet jeśli są elementem i nie bądź tekstem, sprawdź i zobacz, co się stanie
Pnsadeghy
wyrównaj tekst tylko środkowy tekst. Masz rację w tej chwili, ale kiedy piszesz kontener css, który zawiera dziecko o innej szerokości i kolorze, twój kod nie działa. Sprawdź to jeszcze raz !!!!
Odpowiedzi:
Możesz zastosować ten CSS do wewnętrznej
<div>
:Oczywiście, nie trzeba ustawić
width
się50%
. Działa dowolna szerokość mniejsza niż zawierająca<div>
. Tomargin: 0 auto
właśnie robi faktyczne centrowanie.Jeśli korzystasz z przeglądarki Internet Explorer 8 (i nowszych), może być lepsza opcja:
Sprawi, że wewnętrzny element wyśrodkuje się w poziomie i będzie działać bez ustawiania określonego
width
.Przykład działania tutaj:
źródło
margin-left: auto; margin-right: auto
Myślę, że lepiej umieścić .margin:0 auto
: może byćmargin: <whatever_vertical_margin_you_need> auto
drugim marginesem poziomym.Jeśli nie chcesz ustawiać stałej szerokości na wewnętrznej stronie,
div
możesz zrobić coś takiego:To czyni wnętrze
div
wewnętrznym elementem, który można wyśrodkowaćtext-align
.źródło
float: none;
i prawdopodobnie jest potrzebna tylko dlatego, że #inner odziedziczyłfloat
jedenleft
lub jedenright
z innego kodu CSS.text-align
więc może chcesz ustawić wewnętrzne-tychtext-align
doinitial
lub inną wartością.Najlepszym podejściem jest CSS 3 .
Model pudełkowy:
W zależności od użyteczności możesz również korzystać z
box-orient, box-flex, box-direction
właściwości.Flex :
Przeczytaj więcej o centrowaniu elementów potomnych
Link 2
Link 3
Link 4
I to wyjaśnia, dlaczego model box jest najlepszym rozwiązaniem :
źródło
-webkit
flagi dla schematu flexbox (display: -webkit-flex;
a-webkit-align-items: center;
i-webkit-justify-content: center;
)Załóżmy, że div ma szerokość 200 pikseli:
Upewnij się, że element nadrzędny jest ustawiony , tzn. Względny, stały, absolutny lub lepki.
Jeśli nie znasz szerokości div, możesz użyć
transform:translateX(-50%);
zamiast ujemnego marginesu.https://jsfiddle.net/gjvfxxdj/
Dzięki CSS calc () kod może być jeszcze prostszy:
Zasada jest nadal taka sama; umieść przedmiot na środku i zrekompensuj szerokość.
źródło
Stworzyłem ten przykład, aby pokazać, jak pionowo i poziomo
align
.Kod jest w zasadzie taki:
i...
I pozostanie
center
nawet w przypadku zmiany rozmiaru ekranu.źródło
Niektóre plakaty wspominały o CSS 3 sposób korzystania z centrum
display:box
.Ta składnia jest nieaktualna i nie należy jej już używać. [Zobacz także ten post] .
Tak więc, dla kompletności, oto najnowszy sposób na wyśrodkowanie w CSS 3 za pomocą modułu elastycznego układu pól .
Więc jeśli masz proste znaczniki, takie jak:
... a chcesz wyśrodkować swoje elementy w polu, oto czego potrzebujesz na elemencie nadrzędnym (.box):
Pokaż fragment kodu
Jeśli potrzebujesz obsługi starszych przeglądarek, które używają starszej składni dla Flexbox, tutaj jest dobre miejsce do wyszukiwania.
źródło
flex-direction
wartości. Jeśli jest to „wiersz” (domyślnie) -justify-content: center;
oznacza to wyrównanie w poziomie (jak wspomniałem w odpowiedzi). Jeśli jest to „kolumna” -justify-content: center;
oznacza wyrównanie w pionie.Jeśli nie chcesz ustawić stałej szerokości i nie chcesz dodatkowego marginesu, dodaj
display: inline-block
do swojego elementu.Możesz użyć:
źródło
display: table;
. Co to robi?Centrowanie div o nieznanej wysokości i szerokości
Poziomo i pionowo. Działa z rozsądnie nowoczesnymi przeglądarkami (Firefox, Safari / WebKit, Chrome, Internet Explorer 10, Opera itp.)
Majstruj przy tym dalej na Codepen lub na JSBin .
źródło
Nie można go wyśrodkować, jeśli nie podasz mu szerokości. W przeciwnym razie zajmie domyślnie całą przestrzeń poziomą.
źródło
width: fit-content;
imargin: 0 auto
. Myślę, że to może działać z nieznaną szerokością.Właściwość box-align CSS 3
źródło
Ustaw
width
i ustawmargin-left
imargin-right
naauto
. Dotyczy to jednak tylko poziomu . Jeśli chcesz na dwa sposoby, po prostu zrób to na dwa sposoby. Nie bój się eksperymentować; to nie tak, że coś zepsujesz.źródło
Niedawno musiałem wyśrodkować „ukryty” div (tj.
display:none;
), Który zawierał formularz, który musiał być wyśrodkowany na stronie. Napisałem następujący kod jQuery, aby wyświetlić ukryty div, a następnie zaktualizuj zawartość CSS do automatycznie wygenerowanej szerokości tabeli i zmień margines, aby go wyśrodkować. (Przełączanie wyświetlania jest uruchamiane przez kliknięcie łącza, ale ten kod nie był konieczny do wyświetlenia).UWAGA: Udostępniam ten kod, ponieważ Google wprowadził mnie do tego rozwiązania przepełnienia stosu i wszystko działałoby, z wyjątkiem tego, że ukryte elementy nie mają żadnej szerokości i nie można ich zmienić / wyśrodkować, dopóki nie zostaną wyświetlone.
źródło
Zwykle robię to za pomocą pozycji bezwzględnej:
Zewnętrzny div nie potrzebuje żadnych dodatkowych właściwości, aby to zadziałało.
źródło
W przypadku przeglądarki Firefox i Chrome:
W przypadku przeglądarki Internet Explorer, Firefox i Chrome:
Ta
text-align:
właściwość jest opcjonalna dla współczesnych przeglądarek, ale jest niezbędna w trybie dziwactwa przeglądarki Internet Explorer do obsługi starszych przeglądarek.źródło
Posługiwać się:
źródło
Innym rozwiązaniem tego problemu bez konieczności ustawiania szerokości jednego z elementów jest użycie
transform
atrybutu CSS 3 .Sztuczka polega na tym, że
translateX(-50%)
ustawia#inner
element o 50 procent na lewo od własnej szerokości. Możesz użyć tej samej sztuczki do wyrównania pionowego.Oto skrzypce pokazujące wyrównanie w poziomie i pionie.
Więcej informacji znajduje się w sieci Mozilla Developer Network .
źródło
-webkit-transform: translate(-50%,0); -moz-transform: translate(-50%,0); -ms-transform: translate(-50%,0); -khtml-transform: translate(-50%,0); -o-transform: translate(-50%,0);
Chris Coyier, który napisał na swoim blogu doskonały post na temat „Centrowania w nieznanym”. Jest to zestaw wielu rozwiązań. Opublikowałem taki, który nie został zamieszczony w tym pytaniu. Ma większą obsługę przeglądarki niż rozwiązanie Flexbox i nie używasz tego,
display: table;
co mogłoby popsuć inne rzeczy.źródło
Ostatnio znalazłem podejście:
Oba elementy muszą mieć tę samą szerokość, aby działać poprawnie.
źródło
#inner
tylko:#inner { position:relative; left:50%; transform:translateX(-50%); }
. Działa to dla dowolnej szerokości.Na przykład zobacz ten link i fragment poniżej:
Jeśli masz dużo dzieci pod rodzicem, treść CSS musi być taka jak w przykładzie na skrzypcach .
Wygląd treści HTML wygląda następująco:
Następnie zobacz ten przykład na skrzypcach .
źródło
Centrowanie tylko poziomo
Z mojego doświadczenia wynika, że najlepszym sposobem na wyśrodkowanie pudełka w poziomie jest zastosowanie następujących właściwości:
Pojemnik:
text-align: center;
Pole zawartości:
display: inline-block;
Próbny:
Zobacz także to skrzypce !
Centrowanie zarówno w poziomie, jak i w pionie
Z mojego doświadczenia wynika, że najlepszym sposobem na wyśrodkowanie pudełka jest jedno i drugie wynika pionie, i poziomie jest użycie dodatkowego pojemnika i zastosowanie następujących właściwości:
Zewnętrzny pojemnik:
display: table;
Wewnętrzny pojemnik:
display: table-cell;
vertical-align: middle;
text-align: center;
Pole zawartości:
display: inline-block;
Próbny:
Zobacz także to skrzypce !
źródło
Najłatwiejszy sposób:
źródło
#outer
nie potrzebuje żadnych,width:100%;
jak<div>
zawsze domyślniewidth:100%
. i nietext-align:center
jest wcale konieczne.Jeśli szerokość treści jest nieznana, możesz użyć następującej metody . Załóżmy, że mamy te dwa elementy:
.outer
-- pełna szerokość.inner
- brak ustawionej szerokości (ale można określić maksymalną szerokość)Załóżmy, że obliczona szerokość elementów wynosi odpowiednio 1000 pikseli i 300 pikseli. Postępować w następujący sposób:
.inner
środku.center-helper
.center-helper
blok wbudowany; staje się tego samego rozmiaru co.inner
co szerokość 300 pikseli..center-helper
50% w prawo w stosunku do jego rodzica; to pozostawia lewą stronę na 500 pikseli wrt. zewnętrzny..inner
50% w lewo względem jego rodzica; to umieszcza lewą stronę na -150 pikseli wrt. środkowy pomocnik, co oznacza, że jego lewa strona ma 500 - 150 = 350 pikseli wrt. zewnętrzny..outer
ukryte, aby zapobiec poziomemu paskowi przewijania.Próbny:
źródło
Możesz zrobić coś takiego
Spowoduje to również wyrównanie w
#inner
pionie. Jeśli nie chcesz, usuń właściwościdisplay
ivertical-align
;źródło
Oto, co chcesz w najkrótszy sposób.
JSFIDDLE
źródło
Wyrównanie tekstu: środek
Stosowanie
text-align: center
treści śródliniowej jest wyśrodkowane w polu liniowym. Ponieważ jednak wewnętrzny div ma domyślniewidth: 100%
, musisz ustawić określoną szerokość lub użyć jednego z poniższych:display: block
display: inline
display: inline-block
Pokaż fragment kodu
Margines: 0 auto
Używanie
margin: 0 auto
to kolejna opcja i jest bardziej odpowiednia dla starszych przeglądarek. Działa razem zdisplay: table
.Pokaż fragment kodu
Flexbox
display: flex
zachowuje się jak element blokowy i określa jego zawartość zgodnie z modelem flexbox. Działa zjustify-content: center
.Uwaga: Flexbox jest kompatybilny z większością przeglądarek, ale nie ze wszystkimi. Zobacz tutaj pełną i aktualną listę kompatybilności przeglądarek.
Pokaż fragment kodu
Przekształcać
transform: translate
pozwala modyfikować przestrzeń współrzędnych modelu formatowania wizualnego CSS. Za jego pomocą elementy mogą być tłumaczone, obracane, skalowane i pochylane. Do wyśrodkowania w poziomie wymagaposition: absolute
ileft: 50%
.Pokaż fragment kodu
<center>
(Przestarzałe)Tag
<center>
jest alternatywą HTML dlatext-align: center
. Działa na starszych przeglądarkach i na większości nowych, ale nie jest uważane za dobrą praktykę, ponieważ ta funkcja jest przestarzała i została usunięta ze standardów sieciowych.Pokaż fragment kodu
źródło
Możesz użyć
display: flex
dla zewnętrznego div i aby wyśrodkować w poziomie, musisz dodaćjustify-content: center
lub możesz odwiedzić w3schools - CSS Flex Property, aby uzyskać więcej pomysłów.
źródło
Flex ma ponad 97% obsługi przeglądarek i może być najlepszym sposobem rozwiązania tego rodzaju problemów w kilku liniach:
źródło
Udało mi się znaleźć rozwiązanie, które może pasować do wszystkich sytuacji, ale używa JavaScript:
Oto struktura:
A oto fragment kodu JavaScript:
Jeśli chcesz używać go w sposób responsywny, możesz dodać następujące elementy:
źródło
Ta metoda działa również dobrze:
Jeśli chodzi o wnętrze
<div>
, jedynym warunkiem jest to, że jegoheight
iwidth
nie może być większy niż te z jego pojemnika.źródło
Istnieje jedna opcja, którą znalazłem:
Wszyscy mówią, aby użyć:
Ale jest inna opcja. Ustaw tę właściwość dla rodzica div. Działa idealnie w każdej chwili:
I zobacz, dziecko idzie do centrum.
I wreszcie CSS dla Ciebie:
źródło