Jak wyśrodkować div o rozmiarze jednej kolumny w kontenerze (12 kolumn) w programie Bootstrap 3 na Twitterze ?
.centered {
background-color: red;
}
<body class="container">
<div class="col-lg-1 col-offset-6 centered">
<img data-src="holder.js/100x100" alt="" />
</div>
</body>
Chcę div
, .centered
aby klasa była wyśrodkowana w kontenerze. Mogę użyć wiersza, jeśli jest wiele div
s, ale na razie chcę tylko div
z wielkością jednej kolumny wyśrodkowanej w kontenerze (12 kolumn).
Nie jestem również pewien, czy powyższe podejście jest wystarczająco dobre, ponieważ nie zamierzamy zrównoważyć tego div
o połowę. Nie potrzebuję wolnych przestrzeni na zewnątrz div
i zawartości div
skurczu w proporcji. Chcę, aby puste miejsce poza div było równomiernie rozmieszczone (zmniejszaj się, aż szerokość kontenera będzie równa jednej kolumnie).
.clearfix
nie działałby w tym przypadku, ponieważ nie usuwa właściwości float na elementach (które są potrzebne do wyśrodkowania za pomocąmargin: 0 auto
), po prostu sprawia, że pojemnik zawija wszelkie pływające elementy wewnątrzfloat:none;
Preferowaną metodą centrowania kolumny jest użycie „przesunięcia” (czyli:
col-md-offset-3
)Przykłady centrowania Bootstrap 3.x.
Dla elementów centrujących istnieje
center-block
klasa pomocnicza .Możesz także użyć
text-center
do wyśrodkowania tekstu (i elementów wstawianych).Demo : http://bootply.com/91632
EDYCJA - jak wspomniano w komentarzach,
center-block
działa na zawartość kolumny idisplay:block
elementy, ale nie działa na samej kolumnie (col-*
div), ponieważ używa Bootstrapfloat
.Aktualizacja 2018
Teraz z Bootstrap 4 , gdy centrujące metody zmieniły ..
text-center
jest nadal używany dodisplay:inline
elementówmx-auto
zastępuje elementycenter-block
środkowedisplay:block
offset-*
lubmx-auto
może być użyty do wyśrodkowania kolumn siatkimx-auto
(marginesy automatycznego oś x) będzie koncentrowaćdisplay:block
lubdisplay:flex
elementów, które mają określoną szerokość , (%
,vw
,px
itp ..). Flexbox jest domyślnie używany w kolumnach siatki, więc istnieją również różne metody centrowania Flexbox.Demo Bootstrap 4 Poziome centrowanie
Centrowanie pionowe w BS4 patrz https://stackoverflow.com/a/41464397/171456
źródło
text-center
szczegółów - czego nie dostarczyła żadna inna odpowiedź. Ten dostaje mój głos.float:none;
Teraz Bootstrap 3.1.1 współpracuje
.center-block
, a ta klasa pomocnicza działa z systemem kolumn.Bootstrap 3 Centrum klasy pomocników .
Proszę sprawdzić to jsfiddle DEMO :
Centrum kolumny wiersza za pomocą
col-center-block
klasy pomocniczej.źródło
float:none
, upewniając się, że środkowy blok div mastyle="width : ?px"
zastosowany styl. Na przykład szerokość obrazu. Współpracuje z 3.2.2Po prostu dodaj następujące elementy do niestandardowego pliku CSS. Bezpośrednia edycja plików Bootstrap CSS nie jest zalecana i anuluje możliwość korzystania z CDN .
Dlaczego?
Bootstrap CSS (wersja 3.7 i niższe) używa marginesu: 0 auto; , ale zostaje zastąpione przez właściwość float kontenera wielkości.
PS :
Po dodaniu tej klasy nie zapomnij ustawić klas we właściwej kolejności.
źródło
3.3.7
i jest to jedyna metoda, która działa dla mnie!!important
jest to konieczneBootstrap 3 ma teraz wbudowaną klasę do tego
.center-block
Jeśli nadal używasz 2.X, po prostu dodaj to do swojego CSS.
źródło
float:none;
Moje podejście do środkowych kolumn polega na użyciu
display: inline-block
kolumn itext-align: center
elementu nadrzędnego kontenera.Musisz tylko dodać klasę CSS „wyśrodkowaną” do
row
.HTML:
CSS:
JSFiddle: http://jsfiddle.net/steyffi/ug4fzcjd/
źródło
Bootstrap w wersji 3 ma klasę .text-center.
Po prostu dodaj tę klasę:
Po prostu załaduje ten styl:
Przykład:
źródło
Z Bootstrap v4 można to zrobić, dodając
.justify-content-center
do pliku.row
<div>
https://getbootstrap.com/docs/4.0/utilities/flex/#justify-content
źródło
To działa. Cholera prawdopodobnie, ale działa dobrze. Został przetestowany pod kątem responsywności (Y).
źródło
img
Może być ustawiona jako blok..centered img { display: inline; }
do twojej odpowiedzi, a wtedy byłoby warte większego głosowania.źródło
Aby wyśrodkować kolumnę, musimy użyć poniższego kodu. cols są elementami zmiennoprzecinkowymi oprócz auto marginesu. Ustawimy go również na brak zmiennoprzecinkowy,
Aby wyśrodkować powyższą kolumnę-lg-1 klasą środka, napiszemy:
Aby wyśrodkować zawartość wewnątrz div, użyj
text-align:center
,Jeśli chcesz wyśrodkować go tylko na pulpicie i na większym ekranie, a nie na telefonie komórkowym, użyj następującego zapytania o media.
Aby wyśrodkować div tylko na wersji mobilnej, użyj poniższego kodu.
źródło
Po prostu ustaw jedną kolumnę wyświetlającą treść na col-xs-12 (najpierw na urządzeniu mobilnym ;-) i skonfiguruj tylko kontener, aby kontrolować, jak szeroka ma być wyśrodkowana zawartość, więc:
Aby zobaczyć demo, zobacz http://codepen.io/Kebten/pen/gpRNMe :-)
źródło
Innym podejściem do kompensacji jest posiadanie dwóch pustych wierszy, na przykład:
źródło
Możesz użyć
text-center
dla wiersza i upewnić się, że wewnętrzne div majądisplay:inline-block
(z niefloat
).Tak jak:
I CSS:
Skrzypce: http://jsfiddle.net/DTcHh/3177/
źródło
Z bootstrap 4 możesz po prostu spróbować,
justify-content-md-center
jak tu wspomnianoźródło
Prawdopodobnie nie jest to najlepsza odpowiedź, ale istnieje jeszcze jedno twórcze rozwiązanie tego problemu. Jak wskazał koala_dev, kompensacja kolumn działa tylko dla parzystych rozmiarów kolumn. Jednak poprzez zagnieżdżanie wierszy można również centrować nierówne kolumny.
Aby trzymać się pierwotnego pytania, w którym chcesz wyśrodkować kolumnę 1 w siatce 12.
Na przykład:
Zobacz to skrzypce , pamiętaj, że musisz zwiększyć rozmiar okna wyjściowego, aby również zobaczyć wynik, w przeciwnym razie kolumny się zawiną.
źródło
To nie jest mój kod, ale działa idealnie (testowany na Bootstrap 3) i nie muszę się bawić z offsetem col.
Próbny:
źródło
Możemy to osiągnąć za pomocą mechanizmu układu tabeli:
Mechanizm jest następujący:
Przykładowe demo jest tutaj
źródło
Dołącz następujący fragment kodu do pliku .row lub .col. To jest dla Bootstrap 4 *.
źródło
Jak koala_dev używał w swoim podejściu 1, wolałbym metodę offsetową zamiast bloku środkowego lub marginesów, które mają ograniczone użycie, ale jak wspomniał:
Można to rozwiązać, stosując następujące podejście do nieparzystych kolumn.
źródło
Możesz użyć bardzo elastycznego rozwiązania flexbox do Bootstrap.
może wyśrodkować kolumnę.
Sprawdź flex .
źródło
Ponieważ nigdy nie muszę wyśrodkowywać tylko jednego
.col-
w ciągu.row
, ustawiam następującą klasę na zawijanie.row
moich docelowych kolumn.Przykład
źródło
Dla tych, którzy chcą wyśrodkować elementy kolumny na ekranie, gdy nie masz dokładnej liczby do wypełnienia siatki, napisałem mały fragment kodu JavaScript, aby zwrócić nazwy klas:
Jeśli masz 5 elementów i chcesz mieć 3 na wiersz na
md
ekranie, wykonaj następujące czynności:Pamiętaj, że drugi argument musi być podzielny przez 12.
źródło
Aby wyśrodkować więcej niż jedną kolumnę w wierszu Bootstrap - a liczba kolumn jest nieparzysta, po prostu dodaj tę
css
klasę do wszystkich kolumn w tym wierszu:Więc w swoim HTML masz coś takiego:
źródło
Spróbuj tego
Możesz użyć innych,
col
jakcol-md-2
itp.źródło
Proponuję po prostu użyć klasy
text-center
:źródło
Wypróbuj ten kod.
Tutaj użyłem col-lg-1, a przesunięcie powinno wynosić 10 dla poprawnie wyśrodkowanego div na dużych urządzeniach. Jeśli potrzebujesz, aby wyśrodkować go na średnich i dużych urządzeniach, po prostu zmień lg na md i tak dalej.
źródło
Rozwiązanie Bootstrap 4 :
źródło
Jeśli umieścisz to w swoim rzędzie, wszystkie kolumny w środku zostaną wyśrodkowane:
źródło
Aby być bardziej precyzyjnym, system siatki Bootstrap zawiera 12 kolumn, a aby wyśrodkować dowolną zawartość, powiedzmy, na przykład, zawartość zajmuje jedną kolumnę. Trzeba będzie zająć dwie kolumny siatki Bootstrap i umieścić zawartość na połowie dwóch zajętych kolumn.
„col-xs-offset-5” mówi systemowi siatki, od czego zacząć umieszczać zawartość.
„col-xs-2” mówi systemowi siatki, ile pozostałych kolumn powinno zająć zawartość.
„wyśrodkowany” będzie zdefiniowaną klasą, która będzie centrować treść.
Oto jak wygląda ten przykład w systemie siatki Bootstrap.
Kolumny:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
....... offset ........ dane. .......nieużywany........
źródło