Wyśrodkuj obraz w tabeli td w CSS

101

Próbowałem wyrównać obraz do środka stołu td. Działało z ustawieniem margin-left na określoną wartość, ale także zwiększyło rozmiar td i nie jest to dokładnie to, czego chciałem

Czy są na to skuteczne sposoby? Użyłem wartości procentowych dla wysokości i szerokości stołu.

Najlepsza
źródło
powiązane pytanie: stackoverflow.com/questions/8639383/… Oprócz nadania rodzicowi (tutaj td) stylu text-align: center, być może będziesz musiał nadać dziecku (tutaj, img) styl wyświetlania: blok lub wyświetlanie : inline-block
mathheadinclouds

Odpowiedzi:

177
<td align="center">

lub przez css, który jest już preferowaną metodą ...

<td style="text-align: center;">
Scott
źródło
23
Uwaga do OP ... użyj drugiej opcji Scotta, ponieważ
``
Jak więc możemy przezwyciężyć HTML5?
Najlepsze
25
Nie pokonujesz HTML5… dostosowujesz się do niego. @beardtwizzle .. dzięki za dodanie tego.
Scott,
1
A co jeśli chcę, żeby było wyśrodkowane również od góry
Sohaib,
11
@SilentPro<td style="text-align: center; vertical-align: middle;">
Scott,
55

Prosty sposób na zrobienie tego dla html5 w css:

td img{
    display: block;
    margin-left: auto;
    margin-right: auto;

}

Pracował dla mnie idealnie.

Mohammed Gadiwala
źródło
Działa doskonale; <td style = "text-align: center;"> nie działa, <td align = "center"> działa, ale nie jest obsługiwane w HTML5
user2431763
9

Wyśrodkuj element div wewnątrz td za pomocą marginesu, sztuczka polega na tym, aby szerokość div była taka sama jak szerokość obrazu.

<td>
    <div style="margin: 0 auto; width: 130px">
          <img src="me.jpg" alt="me" style="width: 130px" />
    </div>
</td>
Najlepsze systemy
źródło
1
@Saike Niezupełnie, <div>s są usuwane z większości e-maili i nie są uważane za dobrą praktykę.
crmpicco
6

To rozwiązało dla mnie problemy:

<style>
.super-centered {
    position:absolute; 
    width:100%;
    height:100%;
    text-align:center; 
    vertical-align:middle;
    z-index: 9999;
}
</style>

<table class="super-centered"><tr><td style="width:100%;height:100%;" align="center"     valign="middle" > 
<img alt="Loading ..." src="/ALHTheme/themes/html/ALHTheme/images/loading.gif">
</td></tr></table>
Kheteswar
źródło
to również rozwiązało problem dla mnie, ale w tagu obrazu, a nie w tagu tabeli lub td
Sumon Bappi
6
<table style="width:100%;">
<tbody ><tr><td align="center">
<img src="axe.JPG" />
</td>
</tr>
</tbody>
</table>

lub

td
{
    text-align:center;
}

w pliku CSS

oqx
źródło
5

Ustaw stałe z obrazem w css i dodaj auto-margin / padding na obrazie, aby ...

div.image img {
    width: 100px;
    margin: auto;
}

Lub ustaw na text-alignśrodek ...

td {
    text-align: center;
}
Michiel
źródło
2
td image 
{
    display: block;
    margin-left: auto;
    margin-right: auto;
}
aulianza
źródło
świetna ogólna odpowiedź
Dan,
0

Inną opcją jest użycie <th>zamiast <td>. <th>domyślnie centrum; <td>domyślnie lewy.

user13731874
źródło
Naprawiłem to dla ciebie, ale w przyszłości po prostu używaj lewych apostrofów (`) po obu stronach elementów HTML, aby upewnić się, że są wyświetlane.
Jeremy Caney
-6

Zgodnie z moją analizą i wyszukiwaniem w Internecie nie mogłem znaleźć sposobu na wyśrodkowanie obrazu w pionie, przy użyciu <div>tego było możliwe tylko przy użyciu, <table>ponieważ tabela zawiera następującą właściwość:

valign="middle"
Kheteswar
źródło
3
Ta sugestia nie jest zalecana, ponieważ nie jest obsługiwana w HTML5. Lepiej użyć stylu lub klasy CSS z wyrównaniem w pionie: środek zastosowany do kolumny lub kontenera.
mbokil