2012-04-05 12 views

Antwort

3

Ich habe mehrere Möglichkeiten ausprobiert. Auch zum Hinzufügen von Stilen innerhalb der HTML-Datei, die auf dem Desktop, aber nicht auf mobilen Geräten gut aussah.

Die Lösung ist die bootstrap.css zu ändern (obwohl ich nicht sicher bin, ob diese Datei geändert werden soll, wird intented):

.form-horizontal .control-label { 
    float: left; 
    /*original: width: 140px;*/ 
    width: 200px; 
    padding-top: 5px; 
    text-align: right; 
} 
.form-horizontal .controls { 
    /*original: margin-left: 160px;*/ 
    margin-left: 220px; 
} 
+11

Das Bearbeiten der Bibliotheks-CSS-Datei ist fast nie eine gute Idee, da dies die Aktualisierung und Wartung zu einem Albtraum macht. –

+0

+1 Michael Moussa, -1 für die Antwort des Posters. – Mtz

+1

Sie können jedoch eine eigene CSS-Datei erstellen, die diese Werte überschreibt. – AlexLordThorsen

0

Vergessen Sie nicht,

.form-actions { 
    padding-left: 160px; 
} 

zu bearbeiten auch in forms.less

Dies sollte als eine Variable eingestellt werden, denke ich.

Ich habe geändert, dass für mich als solche in forms.less (die beiden neuen Variablen in variables.less gesetzt werden dann):

// Horizontal-specific styles 
// -------------------------- 

.form-horizontal { 
    // Increase spacing between groups 
    .control-group { 
    margin-bottom: @baseLineHeight; 
    .clearfix(); 
    } 
    // Float the labels left 
    .control-label { 
    float: left; 
    // ub was 140px 
    width: @labelWidth; 
    padding-top: 5px; 
    text-align: right; 
    } 
    // Move over all input controls and content 
    .controls { 
    // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend 
    // don't inherit the margin of the parent, in this case .controls 
    *display: inline-block; 
    // ub was 20px 
    *padding-left: @labelPadding; 
    // ub was 160px 
    margin-left: @labelWidth + @labelPadding; 
    *margin-left: 0; 
    &:first-child { 
     // ub was 160px 
     *padding-left: @labelWidth + @labelPadding; 
    } 
    } 
    // Remove bottom margin on block level help text since that's accounted for on .control-group 
    .help-block { 
    margin-top: @baseLineHeight/2; 
    margin-bottom: 0; 
    } 
    // Move over buttons in .form-actions to align with .controls 
    .form-actions { 
    // ub was 160px 
    padding-left: @labelWidth + @labelPadding; 
    } 
} 
+0

Bearbeiten Sie keine Bibliotheksdateien, da dies die Aktualisierung und Wartung sehr erschwert. -1 für diese Antwort. – Mtz

+0

Diese Antwort bezieht sich auf die Antwort unten (die die Pixelbreite gehackt hat) und enthält eine Verbesserung für den Bootstrap, da sie feste Elemente in eine Variable änderte. Die hier vorgeschlagene Änderung wird jetzt mit @horizontalComponentOffset in der aktuellen Bootstrap-Version implementiert. – Urs

+0

Ich habe die andere Antwort auch aus dem gleichen Grund abgelehnt, keine Sorge. Ich halte meinen Standpunkt aufrecht. Wenn Sie die andere Antwort verbessern wollten, könnten Sie sie bearbeitet oder kommentiert haben. – Mtz

5

In Bootstrap v2.1.1, die .control-label Breite definiert ist, in forms.less wie folgt aus:

.form-horizontal 
{ 
    .control-label 
    { 
     width: @horizontalComponentOffset - 20; 
    } 
} 

Sie könnten die @horizontalComponentOffset Variablendefinition in Ihrem Projekt weniger Code unterbrechen, nachdem variables.less Bootstrap des importieren. Wenn Sie dies für eine bestimmte Seite benötigen, tun Sie es auf der Seite WENIGER. Andernfalls fügen Sie einen allgemeinen Import hinzu, oder besser noch Ihre eigene Datei variables.less, die die vordefinierten Variablen von Bootstrap überschreiben soll.

Soweit mobil, können Sie media queries verwenden, um bei Bedarf einen anderen @horizontalComponentOffset Wert für mobile Geräte anzugeben.

Verwandte Themen