To nie zadziała, ponieważ text-alignwłaściwość dotyczy kontenerów blokowych, a nie elementów wbudowanych i imgjest elementem wbudowanym. Zobacz specyfikację W3C .
wypróbowałem tę metodę i działa! ale kiedy wypróbowałem 2 obrazy, to nie działało, po prostu układało się jeden na drugim jak totem, jakieś pomysły, jak wyrównać 2 obrazy w tej samej linii pośrodku?
PatrickGamboa
1
Jak to nie jest obsługiwane przez W3C? Czy możesz podać linki do poparcia tego roszczenia?
Duch Madary
1
@SecondRikudo: text-alignsłuży do wyśrodkowania tekstu, jak sama nazwa wskazuje. Dla elementów blokowych, margin: 0 auto;jest zalecana podejście.
Mrchief
4
@Mrchief Obrazy są elementami wbudowanymi, a nie blokami. text-aligndziała na nich równie dobrze.
Duch Madary
4
To wyjaśnienie jest trochę dziwne, prawda? Mówisz, że „wyrównanie tekstu” odnosi się do bloków, a nie do wstawek, co, jak sądzę, to dosłownie zmieniasz je na element blokowy, unikając przy tym wyrównania tekstu. Mam na myśli, że twój kod działa, ale ten akapit musi zostać całkowicie przeredagowany, imo.
Nie zgadzam się, myślę, że to odpowiada na pytanie. OP zapytał, czy właściwość text-align: centerjest dobrym sposobem na wyśrodkowanie obrazu, i nie określił, że właściwość musi być częścią znacznika img. Ta odpowiedź wykorzystuje tę właściwość w celu dostarczenia rozwiązania (które działa).
MandM
2
To działało dla mnie, gdy display: block itp. Nie działał.
niestety <center>nie jest obsługiwany w html5, ale cholera, działa.
Ayrat,
13
W rzeczywistości jedynym problemem związanym z kodem jest to, że text-alignatrybut dotyczy tekstu (tak, obrazy liczą się jako tekst) wewnątrz znacznika. Chcesz umieścić spanznacznik wokół obrazu i ustawić jego styl na text-align: center:
Obraz zostanie wyśrodkowany. W odpowiedzi na twoje pytanie jest to najłatwiejszy i najbardziej niezawodny sposób na wyśrodkowanie obrazów, o ile pamiętasz o zastosowaniu reguły do obrazu zawierającego span(lub div).
spanElementem jest display: inline;domyślnie, więc biegnie do samego problemu jak umieszczenie text-align: center;na imgsobie. Musisz ustawić spansię display: block;lub zastąpienie go divza to do pracy.
Web_Designer
10
Istnieją trzy metody wyśrodkowania elementu, które mogę zasugerować:
Pierwsza i druga metoda działają tylko wtedy, gdy element nadrzędny jest co najmniej tak szeroki jak obraz. Kiedy obraz jest szerszy niż jego rodzic, obraz nie pozostanie wyśrodkowany !!!
<p>Hello the following image is centered</p><pclass="pic"><imgsrc="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p><p>Did it work?</p>
CSS:
p.pic {
width:48px;
margin:0auto;}
Jedynym problemem jest to, że szerokość akapitu musi być taka sama jak szerokość obrazu . Jeśli nie umieścisz szerokości akapitu, nie zadziała, ponieważ przyjmie on 100%, a obraz zostanie wyrównany do lewej, chyba że oczywiście użyjesztext-align:center .
Wypróbuj skrzypce i eksperymentuj z nią, jeśli chcesz.
Dream Hunter, jeśli proponujesz alternatywny sposób wyśrodkowania obrazu za pomocą css, musisz nieco rozszerzyć swoje pytanie. Możesz wyjaśnić, w jaki sposób i dlaczego ta proponowana alternatywa byłaby lepszym sposobem na osiągnięcie celu pytającego, być może zawierając link do odpowiedniej dokumentacji. Dzięki temu byłby dla nich bardziej przydatny, a także bardziej przydatny dla innych czytelników witryn, którzy szukają rozwiązań podobnych problemów.
Vince Bowdren,
6
Jeśli używasz klasy z obrazem, zrobią to następujące rzeczy
class{
display: block;
margin:0auto;}
Jeśli jest to tylko obraz w określonej klasie, który chcesz wyśrodkować, wykonaj następujące czynności:
Whate w justify-content może użyć do ustawienia wyrównania w <p> ??
Manjitha teshara,
Tego właśnie chciałem. Dziękuję Ci.
Dionne Kim
5
Najprostszym rozwiązaniem, jakie znalazłem, było dodanie tego do mojego elementu img:
style="display:block;margin:auto;"
Wygląda na to, że nie muszę dodawać „0” przed „auto”, jak sugerują inni. Być może jest to właściwy sposób, ale działa wystarczająco dobrze dla moich celów bez „0”. Przynajmniej w najnowszych przeglądarkach Firefox, Chrome i Edge .
tylko auto oznacza auto auto auto autoi 0 autooznacza 0 auto 0 auto... i domyślnie auto dla dolnego i górnego marginesu jest 0tak, że dodanie 0 lub nie jest dokładnie takie samo w tym przypadku, co powoduje, że odpowiadasz na n-ty duplikat już podanych
Temani Afif
Twój komentarz wyjaśnia, dlaczego to działa. Świetny. Ale która z poprzednich odpowiedzi mówi, że zwykłe „auto” bez „0” również działa? Czy nie warto o tym wspominać?
Panu Logic,
w tym przypadku powinien to być komentarz, ponieważ w tym konkretnym przypadku oba są takie same. Nie sądzę, że powinniśmy mieć odpowiedź na wszystkie równoważne wartości, w tym przypadku możemy napisać: auto, auto auto, auto auto auto, auto auto auto auto, 0 auto 0, 0 auto, 0 auto 0 auto, i tak dalej ... myślisz każdy zasługuje na inną odpowiedź? Nie wydaje mi się
Temani Afif,
Nie powiedziałbym, że jeśli dwa różne segmenty CSS dają ten sam efekt końcowy, te dwa segmenty CSS „są takie same”. Ich dane wyjściowe są takie same, ale kod źródłowy nie jest taki sam. Tak jak ogólnie, możesz napisać dowolną liczbę różnych programów, które wytwarzają to samo wyjście. Warto zatem wiedzieć (i informować osoby, które pytają), który z takich „równoważnych” programów wydaje się najprostszy i najkrótszy do napisania.
Panu Logic
a wszystko to powinno być zapisane w ramach jednej odpowiedzi. Dlatego ta odpowiedź jest bardziej odpowiednia jako komentarz niż zupełnie nowa odpowiedź. Powinniśmy przedstawić wszystkie równoważne rzeczy razem i nie robić z nich osobnej cechy, która może brzmieć, że są zupełnie inne, ponieważ tak nie jest [moja opinia przy okazji, nie trzeba się z tym zgadzać ani argumentować przeciwnie]. I nie mówię o różnych programach, które wytwarzają to samo wyjście, jest to zupełnie inna sprawa, ponieważ logika może nie być taka sama. Mówimy tutaj o tej samej nieruchomości i tej samej wartości (jak i++są takie same jak i+=1)
Można używać text-align: centerna rodzica i zmienić imgsię display: inline-block→ zatem zachowuje się jak tekstowym elementu i będzie wyśrodkowany jeśli rodzic ma szerokość!
Aby wyśrodkować non tło obrazu zależy od tego, czy chcesz, aby wyświetlić obraz jako inline (zachowanie domyślne) lub element bloku.
Przypadek inline
Jeśli chcesz zachować domyślne zachowanie właściwości display CSS obrazu, musisz owinąć obraz wewnątrz innego elementu bloku, do którego musisz ustawić text-align: center;
Przypadek bloku
Jeśli chcesz uznać obraz za własny element blokowy, text-alignwłaściwość nie ma sensu i powinieneś to zrobić:
Czy właściwość text-align: center; dobry sposób na wyśrodkowanie obrazu za pomocą CSS?
Tak i nie.
Tak, jeśli obraz jest jedynym elementem wewnątrz opakowania.
Nie, w przypadku, gdy wewnątrz opakowania obrazu znajdują się inne elementy, ponieważ wszystkie elementy potomne, które są rodzeństwem obrazu, odziedziczą text-alignwłaściwość: być może nie spodobałby Ci się ten efekt uboczny.
img {
width:60%;/* Or required size of image. */
margin-left:20%/* Or scale it to move image. */
margin-right:20%/* It doesn't matters much if using left and width */}
miałeś na myśli margin: 0 auto;? Ustawienie jest kluczem margin-lefti margin-rightdo auto. margin: 0 auto;jest po prostu skrótem do tego.
Web_Designer,
1
@Web_Designer Próbowałem margin: 0 auto, margin: 0i margin: autożaden pracował. Pamiętaj, że podczas korzystania z inspektora Chrome margin: 0 autouderza właściwość wykrzyknikiem invalid property value(lub cokolwiek to znaczy)
OverCoder 25.04.16
Myślę, że miałeś na myśli „pozycja: absolutna”; zamiast „display: bezwzględnie;”
WebDevDaniel,
Dzięki @WebDevDaniel za wskazanie literówki. A tak przy okazji, możesz relativeraczej użyć pozycjonowania , bo absoluteoba działają całkiem dobrze.
OverCoder
0
Odkryłem, że jeśli mam obraz i tekst w środku div, mogę użyć text-align:centerdo wyrównania tekstu i obrazu za jednym zamachem.
HTML:
<divclass="picture-group"><h2class="picture-title">Picture #1</h2><imgsrc="http://lorempixel.com/99/100/"alt=""class="picture-img"/><pclass="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p></div>
Czasami bezpośrednio dodajemy zawartość i obrazy administratora WordPress na stronach. Kiedy wstawiamy obrazy do treści i chcemy wyrównać to centrum. Kod jest wyświetlany jako:
Odpowiedzi:
To nie zadziała, ponieważ
text-align
właściwość dotyczy kontenerów blokowych, a nie elementów wbudowanych iimg
jest elementem wbudowanym. Zobacz specyfikację W3C .Zamiast tego użyj tego:
źródło
text-align
służy do wyśrodkowania tekstu, jak sama nazwa wskazuje. Dla elementów blokowych,margin: 0 auto;
jest zalecana podejście.text-align
działa na nich równie dobrze.To nie zawsze działa ... jeśli nie, spróbuj:
źródło
Natrafiłem na ten post i zadziałało to dla mnie:
(Wyrównanie w pionie i poziomie)
źródło
Innym sposobem zrobienia tego byłoby wyśrodkowanie akapitu:
źródło
text-align: center
jest dobrym sposobem na wyśrodkowanie obrazu, i nie określił, że właściwość musi być częścią znacznika img. Ta odpowiedź wykorzystuje tę właściwość w celu dostarczenia rozwiązania (które działa).Możesz to zrobić:
<center><img src="..." /></center>
źródło
<center>
nie jest obsługiwany w html5, ale cholera, działa.W rzeczywistości jedynym problemem związanym z kodem jest to, że
text-align
atrybut dotyczy tekstu (tak, obrazy liczą się jako tekst) wewnątrz znacznika. Chcesz umieścićspan
znacznik wokół obrazu i ustawić jego styl natext-align: center
:Obraz zostanie wyśrodkowany. W odpowiedzi na twoje pytanie jest to najłatwiejszy i najbardziej niezawodny sposób na wyśrodkowanie obrazów, o ile pamiętasz o zastosowaniu reguły do obrazu zawierającego
span
(lubdiv
).źródło
span
Elementem jestdisplay: inline;
domyślnie, więc biegnie do samego problemu jak umieszczenietext-align: center;
naimg
sobie. Musisz ustawićspan
siędisplay: block;
lub zastąpienie godiv
za to do pracy.Istnieją trzy metody wyśrodkowania elementu, które mogę zasugerować:
Korzystanie z
text-align
nieruchomościKorzystanie z
margin
nieruchomościKorzystanie z
position
nieruchomościPierwsza i druga metoda działają tylko wtedy, gdy element nadrzędny jest co najmniej tak szeroki jak obraz. Kiedy obraz jest szerszy niż jego rodzic, obraz nie pozostanie wyśrodkowany !!!
Ale: Trzecia metoda jest na to dobra!
Oto przykład:
źródło
img
wnętrze w wyjustowanymdiv
wWebView
iniekcji CSS. Dziękuję Ci!Tylko jeśli potrzebujesz obsługi starożytnych wersji Internet Explorera.
Nowoczesne podejście jest do zrobienia
margin: 0 auto
w CSS.Przykład tutaj: http://jsfiddle.net/bKRMY/
HTML:
CSS:
Jedynym problemem jest to, że szerokość akapitu musi być taka sama jak szerokość obrazu . Jeśli nie umieścisz szerokości akapitu, nie zadziała, ponieważ przyjmie on 100%, a obraz zostanie wyrównany do lewej, chyba że oczywiście użyjesz
text-align:center
.Wypróbuj skrzypce i eksperymentuj z nią, jeśli chcesz.
źródło
źródło
Jeśli używasz klasy z obrazem, zrobią to następujące rzeczy
Jeśli jest to tylko obraz w określonej klasie, który chcesz wyśrodkować, wykonaj następujące czynności:
źródło
img.class
lub też dodamimg.class
wersję. Dzięki za to.Na obrazie przechowującym pojemnik można użyć Flexbox CSS 3, aby idealnie wyśrodkować obraz w środku, zarówno w pionie, jak iw poziomie.
Załóżmy, że masz <div class = "container"> jako uchwyt obrazu:
Następnie jako CSS musisz użyć:
A to sprawi, że cała twoja zawartość wewnątrz div będzie idealnie wyśrodkowana.
źródło
Najprostszym rozwiązaniem, jakie znalazłem, było dodanie tego do mojego elementu img:
Wygląda na to, że nie muszę dodawać „0” przed „auto”, jak sugerują inni. Być może jest to właściwy sposób, ale działa wystarczająco dobrze dla moich celów bez „0”. Przynajmniej w najnowszych przeglądarkach Firefox, Chrome i Edge .
źródło
auto auto auto auto
i0 auto
oznacza0 auto 0 auto
... i domyślnie auto dla dolnego i górnego marginesu jest0
tak, że dodanie 0 lub nie jest dokładnie takie samo w tym przypadku, co powoduje, że odpowiadasz na n-ty duplikat już podanychauto
,auto auto
,auto auto auto
,auto auto auto auto
,0 auto 0
,0 auto
,0 auto 0 auto
, i tak dalej ... myślisz każdy zasługuje na inną odpowiedź? Nie wydaje mi sięi++
są takie same jaki+=1
)Po prostu zmień wyrównanie rodzica :)
Wypróbuj ten dla właściwości nadrzędnych:
źródło
Można używać
text-align: center
na rodzica i zmienićimg
siędisplay: inline-block
→ zatem zachowuje się jak tekstowym elementu i będzie wyśrodkowany jeśli rodzic ma szerokość!źródło
Chciałbym użyć div, aby wyśrodkować obraz w środku. Jak w:
źródło
Jeśli chcesz ustawić obraz jako tło, mam rozwiązanie:
źródło
Aby wyśrodkować non tło obrazu zależy od tego, czy chcesz, aby wyświetlić obraz jako inline (zachowanie domyślne) lub element bloku.
Przypadek inline
Jeśli chcesz zachować domyślne zachowanie właściwości display CSS obrazu, musisz owinąć obraz wewnątrz innego elementu bloku, do którego musisz ustawić
text-align: center;
Przypadek bloku
Jeśli chcesz uznać obraz za własny element blokowy,
text-align
właściwość nie ma sensu i powinieneś to zrobić:Odpowiedź na twoje pytanie:
Tak i nie.
text-align
właściwość: być może nie spodobałby Ci się ten efekt uboczny.Bibliografia
źródło
Jeszcze jeden sposób skalowania - wyświetl go:
źródło
Użyj tego do swojego
img
CSS:źródło
display: block
zmargin: 0
nie działało dla mnie, ani owijanie za pomocątext-align: center
elementem.To jest moje rozwiązanie:
translateX
jest obsługiwany przez większość przeglądarekźródło
margin: 0 auto;
? Ustawienie jest kluczemmargin-left
imargin-right
doauto
.margin: 0 auto;
jest po prostu skrótem do tego.margin: 0 auto
,margin: 0
imargin: auto
żaden pracował. Pamiętaj, że podczas korzystania z inspektora Chromemargin: 0 auto
uderza właściwość wykrzyknikieminvalid property value
(lub cokolwiek to znaczy)relative
raczej użyć pozycjonowania , boabsolute
oba działają całkiem dobrze.Odkryłem, że jeśli mam obraz i tekst w środku
div
, mogę użyćtext-align:center
do wyrównania tekstu i obrazu za jednym zamachem.HTML:
CSS:
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
źródło
Czasami bezpośrednio dodajemy zawartość i obrazy administratora WordPress na stronach. Kiedy wstawiamy obrazy do treści i chcemy wyrównać to centrum. Kod jest wyświetlany jako:
W takim przypadku możesz dodać treść CSS w następujący sposób:
źródło
Posługiwać się:
Myślę, że jest to sposób na wyśrodkowanie obrazu w środowisku Laravela.
źródło
sprawi to, że obraz będzie wyśrodkowany zarówno pionowo, jak i poziomo
źródło