Bootstrap: Wie ändere ich die Breite des Containers?

125

Ich habe Twitter Bootstrap verwendet, um eine Website mit der festen Containerklasse zu entwickeln, aber jetzt möchte der Client, dass die Website 1000 Pixel breit und nicht 1170 Pixel groß ist. Ich benutze die .less-Dateien nicht.

Gibt es eine schnelle Möglichkeit, dies zu beheben?

Alex
quelle
Beziehen Sie sich auf die Antwort hier , ich denke, Ihr Problem wird durch die Fixed-Only-Geige in dieser Antwort gelöst .
Prem
@prem, tx, aber ich verstehe das Beispiel nicht, da es keine der Bootstrap-Klassen wie span's oder container verwendet. Alles, was ich für dieses Projekt denke, ist, das Maximum des Containers mit dem responsiven Bootstrap auf 940px zu setzen.
alex

Antworten:

75

Gehen Sie zum Abschnitt Anpassen auf der Bootstrap-Site und wählen Sie die gewünschte Größe. Sie müssen @gridColumnWidthund @gridGutterWidthVariablen setzen.

Zum Beispiel: @gridColumnWidth = 65pxund @gridGutterWidth = 20pxErgebnisse in einem 1000pxLayout.

Dann laden Sie es herunter.

Albertedevigo
quelle
Man kann keinen exakten 1000px-Container erreichen, indem man die Variablen gridColumnWidth und gridGutterWidth ändert ... weil (12 * (gridColumnWidth) + 12 (gridGutterWidth)) nicht gleich 1000 ist. Und so gab nur ich diese Lösung. Ist das korrekt?
Prem
15
Theoretisch gibt es unendlich viele Kombinationen, die 1000px entsprechen. Ein Beispiel: 12 * 65 + 11 * 20 = 1000 (zwischen den Spalten befinden sich nur 11 Dachrinnen).
Albertedevigo
huh! Ich habe die einfache Sache wirklich nicht erkannt ... sowieso war deine die passende Lösung.
Prem
Danke für deinen Beitrag, es war hilfreich;) Nur ein Hinweis: Praktisch würde es genau 7 Lösungen geben, die volle Pixel für 1000px Breite verwenden. (Spaltenbreiten 10, 21, 32, 43, 54, 65 und 76)
dfherr
@dfherr Ich weiß nicht genau, was Sie meinen, wenn Sie "praktisch" sagen, aber bitte denken Sie daran, dass CSS Dezimalwerte für Pixel unterstützt. Daher gibt es unendlich viele Lösungen. w3.org/TR/CSS21/syndata.html#length-units
albertedevigo
228

Hier ist die Lösung:

@media (min-width: 1200px) {
    .container{
        max-width: 970px;
    }
}

Dies hat gegenüber der Anpassung von Bootstrap wie in der Antwort von @ Bastardo den Vorteil , dass die Bootstrap-Datei nicht geändert wird. Wenn Sie beispielsweise ein CDN verwenden, können Sie den größten Teil von Bootstrap weiterhin vom CDN herunterladen.

mcbjam
quelle
10
Die meisten Antworten vernachlässigen CDN. Ihre Antwort ist eine perfekte Lösung.
Charles Watson
2
Es ist perfekt für Leute, die das CDN verwenden. Das Ändern des WENIGER (wenn 4 eintrifft, des SASS) zur Erstellungszeit ist perfekt für Benutzer, die ihr eigenes Bootstrap-CSS hosten. Wenn Sie jedoch ein benutzerdefiniertes WENIGER (oder SASS) ändern, das nach dem angegebenen WENIGER importiert wurde, können Sie das zugrunde liegende WENIGER aktualisieren, ohne (normalerweise) einen Unterschied zu machen.
Greg Pettit
2
Ich weiß, dass dies sehr spät ist, aber gegebene Container sind jetzt tendenziell größer, wenn Sie width hinzufügen: auto zum obigen Code können Sie Container größer als maximal 1170 machen.
Rick Calder
Es ist das, wonach ich gesucht habe. Danke dir.
Tedebus
20

Sie binden einen hinter Ihrem Rücken und sagen, dass Sie die WENIGER-Dateien nicht verwenden werden. Ich habe mein erstes Twitter Bootstrap-Design mit 2.0 erstellt und alles in CSS erledigt - eine override.css-Datei erstellt. Es dauerte Tage, bis die Dinge richtig funktionierten.

Jetzt haben wir 3.0. Lassen Sie mich Ihnen versichern, dass das Erlernen von WENIGER weniger Zeit in Anspruch nimmt, was ziemlich einfach ist, wenn Sie mit CSS vertraut sind, als all diese verrückten CSS-Überschreibungen. Änderungen wie die gewünschte vorzunehmen ist ein Kinderspiel.

In Bootstrap 3.0 steuert die Containerklasse die Breite, und alle enthaltenen Stile werden angepasst, um den Container zu füllen. Die Variablen für die Containerbreite befinden sich am Ende der Datei variables.less.

// Container sizes
// --------------------------------------------------

// Small screen / tablet
@container-tablet:            ((720px + @grid-gutter-width));

// Medium screen / desktop
@container-desktop:           ((940px + @grid-gutter-width));

// Large screen / wide desktop
@container-lg-desktop:        ((1020px + @grid-gutter-width));

Einige Websites haben entweder nicht genügend Inhalt, um das 1020-Display zu füllen, oder Sie möchten aus ästhetischen Gründen einen schmaleren Rahmen. Da BS ein 12-Spalten-Raster verwendet, verwende ich ein Vielfaches wie 960.

Bastardo Sucio
quelle
4
Funktioniert, aber: Variablen - Namen sind @container-sm, @container-mdund @container-lg(jetzt)
Andreas Dolk
1
@ Bastardo schöner Name +1
Ömer An
18

@mcbjam hat diese Antwort bereits gegeben, aber hier ist ein bisschen mehr Erklärung.

Sie können die Änderung einfach mithilfe einer Medienabfrage in Ihrer CSS-Datei vornehmen, ohne BS herunterladen zu müssen. Ich habe das gerade gemacht und es funktioniert wunderbar.

Der Wert "min-width" der Medienabfrage weist CSS an, die Breite Ihres Containers nur auf Bildschirmen mit einer Größe von mehr als 1200px (oder einer beliebigen Breite, die Sie dort einschließen möchten) auf 1000px zu ändern . Dadurch bleibt die Reaktionsfähigkeit Ihrer Website erhalten. Wenn die Bildschirmgröße unter diesen Wert springt (kleinerer Monitor, Tablet, Smartphone usw.), wird Ihre Website weiterhin an die kleineren Bildschirme angepasst.

@media (min-width: 1200px) {
  .container {
    width: 1000px;
  }
}
Jeff Schwarting
quelle
13

Für Bootstrap 4, wenn Sie Sass verwenden, ist hier die zu bearbeitende Variable

// Grid containers
//
// Define the maximum width of `.container` for different screen sizes.

$container-max-widths: (
  sm: 540px,
  md: 720px,
  lg: 960px,
  xl: 1140px
) !default;

Um diese Variable zu überschreiben, habe ich vor dem Importieren von Bootstrap $ container-max-widths ohne! Standard in meiner .sass-Datei deklariert.

Hinweis: Ich musste nur den xl-Wert ändern, damit ich nicht über Haltepunkte nachdenken konnte.

Kaizoku Gambare
quelle
12

Legen Sie Ihre eigene Inhaltscontainerklasse mit der Eigenschaft 1000px width fest und verwenden Sie dann container-fluid Boostrap-Klasse anstelle des Containers.

Funktioniert, ist aber möglicherweise nicht die beste Lösung.

Geo
quelle
6

Verwenden Sie einen Wrapper-Selektor und erstellen Sie einen Container mit einer Breite von 100% innerhalb dieses Wrappers, um die gesamte Seite zu kapseln.

<style>#wrapper {width: 1000px;} 
#wrapper .container {max-width: 100%; display: block;}</style>
<body>
<div id="wrapper">
  <div class="container">
    <div class="row">....

Jetzt ist die maximale Breite auf 1000px eingestellt und Sie benötigen nicht weniger oder sass.

Larry Judd
quelle
0

Behältergrößen

@container-large-desktop
(1140px + @grid-gutter-width) -> (970px + @grid-gutter-width)

Ändern Sie im Abschnitt Behältergrößen 1140in970

Ich hoffe es hilft dir.


Vielen Dank für Ihre Richtigkeit. Link zum Anpassen des Bootstraps: https://getbootstrap.com/docs/3.4/customize/

Also Santo
quelle
-3

Fügen Sie dieses Stück CSS in Ihr CSS-Styling ein. Es ist besser, dies nach dem Hinzufügen der Bootstrap-CSS-Datei hinzuzufügen, um dieselbe zu überschreiben.

html, body {
 height: 100%;
 max-width: 100%;
 overflow-x: hidden;
}`
Mahendra
quelle