Robię katalog przy użyciu Bootstrap 3. Obrazy wyświetlane na tabletach wyglądają brzydko ze względu na ich mały rozmiar (500 x 500) i szerokość 767 pikseli w przeglądarce. Chcę umieścić obraz na środku ekranu, ale z jakiegoś powodu nie mogę. Kto pomoże rozwiązać problem?
423
:)
Odpowiedzi:
Jeśli używasz Bootstrap w wersji 3.0.1 lub nowszej, powinieneś użyć tego rozwiązania . Nie zastępuje stylów Bootstrap niestandardowym CSS, ale zamiast tego używa funkcji Bootstrap.
Moja oryginalna odpowiedź jest pokazana poniżej dla potomności
Jest to przyjemnie łatwa naprawa. Ponieważ
.img-responsive
z Bootstrap już ustawionodisplay: block
, możesz użyćmargin: 0 auto
do wyśrodkowania obrazu:źródło
margin: 0 auto
, zamiast zmieniać responsywną .img.W
.center-block
Twitter Bootstrap 3 jest klasa ( od wersji 3.0.1 ), więc użyj:źródło
class="img-responsive" style="margin: 0 auto;"
działa dla mnieclass="img-responsive center-block"
nie (bootstrap 3, ale wersja kilka miesięcy)<a href="#"> </a>
parę, klikalny obszar zostanie rozszerzony do pełnej szerokości otaczającego pojemnika, który może być nieco większy niż obraz. Może to dezorientować użytkowników, którzy klikną na „puste” miejsce, które ich zdaniem.Dodaj tylko klasę
center-block
do obrazu, działa to również z Bootstrap 4:Uwaga:
center-block
działa nawet wtedy, gdyimg-responsive
jest używanyźródło
Po prostu użyj
.text-center
klasy, jeśli używasz Bootstrap 3.Uwaga: To nie działa w przypadku reagowania na img
źródło
img-responsive
To powinno wyśrodkować obraz i sprawić, by był responsywny.
źródło
Sugerowałbym bardziej „abstrakcyjną” klasyfikację. Dodaj nową klasę „img-center”, której można używać w połączeniu z klasą reagującą na .img:
źródło
źródło
display: table
? To jużdisplay: block
wystarczy, aby zabrać sięmargin: 0 auto
do pracyW
img-responsive
tej klasie stylów możesz nadal pracować bez wpływu na inne obrazy.Możesz poprzedzić ten tag sekcją id / div id / class, aby zdefiniować kolejność, w której
img
jest on zagnieżdżony. Ten zwyczajimg-responsive
będzie działał tylko w tym obszarze.Załóżmy, że masz obszar HTML zdefiniowany jako:
Następnie twój CSS może być:
Uwaga: Ta odpowiedź dotyczy potencjalnego wpływu zmian
img-responsive
jako całości. Oczywiściecenter-block
jest najprostszym rozwiązaniem.źródło
Wypróbuj ten kod, będzie działał również w przypadku małych ikon z bootstrap 4, ponieważ nie ma klasy bloku centralnego to bootstrap 4, więc wypróbuj tę metodę, która będzie pomocna. Można zmienić położenie obrazu poprzez ustawienie
.col-md-12
się.col-md-8
lub.col-md-4
, to zapisu do Ciebie.źródło
Spróbuj tego:
źródło
Po prostu umieść wszystkie miniatury obrazów w wierszach / kolumnach w następujący sposób:
i wszystko będzie dobrze działać!
źródło
Aby dodać do odpowiedzi już podanych, posiadające
img-responsive
w połączeniu zimg-thumbnail
ustawidisplay: block
siędisplay: inline block
.źródło
.
źródło
źródło
Bardziej dokładnym sposobem zastosowanym do wszystkich obiektów Booostrap przy użyciu tylko klas standardowych byłoby nie ustawianie marginesów górnego i dolnego (ponieważ obraz może dziedziczyć je od rodzica), więc zawsze używam:
Zrobiłem też Gist dla tego, więc jeśli jakieś zmiany będą miały zastosowanie z powodu jakichkolwiek błędów, wersja aktualizacji będzie zawsze tutaj: https://gist.github.com/jdrda/09a38bf152dd6a8aff4151c58679cc66
źródło
Jak dotąd wydaje się, że najlepszym rozwiązaniem jest akceptacja
<img class="center-block" ... />
. Ale nikt nie wspominał, jak tocenter-block
działa.Weźmy na przykład Bootstrap v3.3.6:
Wartość domyślna
dispaly
dla<img>
toinline
. Wartośćblock
wyświetli element jako element blokowy (jak<p>
). Zaczyna się od nowej linii i zajmuje całą szerokość. W ten sposób dwa ustawienia marginesów pozwalają obrazowi pozostać w środku poziomo.źródło