Kurze Übersicht über die Formatierung von Formularen mit Klassen der bootstrap-Frameworks.
Übersicht der Formular-Klassen
Klasse | Verwendung |
form-control | für Formularfelder wie input, select, textarea |
form-control-file | für Dateiauswahl-Felder |
form-control-lg | Zusatz für größere Eingabefelder |
form-control-sm | Zusatz für kleinere Eingabefelder |
readonly | für schreibgeschützte Felder |
form-control-plaintext | Zusatz zum Entfernen der Umrandung von readonly-Feldern |
form-control-range | für Schieberegler (input type=„range”) |
form-check | für Checkboxen und Radio-Buttons |
form-check-inline | Zusatz für Checkboxen und Radio-Buttons in einer Zeile |
form-check-input | für Eingebafeld von Checkboxen und Radio-Buttons |
form-check-label | für Beschriftung von Checkboxen und Radio-Buttons |
disabled | für gesperrte Eingabefelder und fieldsets |
checked | für ausgewählte Checkboxen und Radio-Buttons |
position-static | für Checkboxen und Radio-Buttons ohne Beschriftung |
form-group | zur Gruppierung von Eingabefeld, Beschriftung, Hilfstext und Validierungtext |
row | zur Gruppierung von Feldern und Beschriftungen in einer Zeile |
form-row | wie row, aber mit kleineren Abständen |
col | Spalte für Layouts unter 576px Breite |
col-sm | Spalte für Layouts ab 576px Breite |
col-md | Spalte für Layouts ab 768px Breite |
col-lg | Spalte für Layouts ab 992px Breite |
col-xl | Spalte für Layouts ab 1200px Breite |
-<n> | Zusatz für Breite der Spalte in n/12 der Gesamtbreite |
col-form-label | für Beschriftung in spaltenförmigen Layouts |
col-form-label-sm | Zusatz für kleinere Beschriftung |
col-form-label-lg | Zusatz für größere Beschriftung |
col-auto | Zusatz für Zentrierung und automatischer Breite der Spalten in einem horizontalen Layout |
form-inline | für Formulare in einer Zeile |
form-text | für Hilfstexte von Formzularfelder |
text-muted | zum Verbergen von Hilfstexten (nur bei hover sichtbar) |
Trick: responsive Textausrichtung
Bootstrap 3 kennt keine Textausrichtung in Abhängigkeit von der Breite des Layouts. Mit diesem css-Trick kann man sie „nachrüsten”:
/*
* Responsive text aligning
* http://ohryan.ca/2014/08/14/set-responsive-text-alignment-bootstrap-3/
*/
.text-xs-left { text-align: left; }
.text-xs-right { text-align: right; }
.text-xs-center { text-align: center; }
.text-xs-justify { text-align: justify; }
@media (min-width: @screen-sm-min) {
.text-sm-left { text-align: left; }
.text-sm-right { text-align: right; }
.text-sm-center { text-align: center; }
.text-sm-justify { text-align: justify; }
}
@media (min-width: @screen-md-min) {
.text-md-left { text-align: left; }
.text-md-right { text-align: right; }
.text-md-center { text-align: center; }
.text-md-justify { text-align: justify; }
}
@media (min-width: @screen-lg-min) {
.text-lg-left { text-align: left; }
.text-lg-right { text-align: right; }
.text-lg-center { text-align: center; }
.text-lg-justify { text-align: justify; }
}
Verwendet man beispielsweise die Klassen text-md-right und text-sm-left für ein Formular-Label, wird es bei Bildschirmen unter 768px (xs und sm) linksbündig, und bei größeren (md und lg) rechtsbündig dargestellt.
Beispiel
Test
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<style>
/*
* Responsive text aligning
* http://ohryan.ca/2014/08/14/set-responsive-text-alignment-bootstrap-3/
*/
.text-xs-left { text-align: left; }
.text-xs-right { text-align: right; }
.text-xs-center { text-align: center; }
.text-xs-justify { text-align: justify; }
@media (min-width: @screen-sm-min) {
.text-sm-left { text-align: left; }
.text-sm-right { text-align: right; }
.text-sm-center { text-align: center; }
.text-sm-justify { text-align: justify; }
}
@media (min-width: @screen-md-min) {
.text-md-left { text-align: left; }
.text-md-right { text-align: right; }
.text-md-center { text-align: center; }
.text-md-justify { text-align: justify; }
}
@media (min-width: @screen-lg-min) {
.text-lg-left { text-align: left; }
.text-lg-right { text-align: right; }
.text-lg-center { text-align: center; }
.text-lg-justify { text-align: justify; }
}
</style><h2>Test</h2>
<div>
<form>
<fieldset><legend>Set 1</legend>
<div class="row">
<div class="form-group row col-md-12">
<label class="col-form-label-sm col-md-2 text-md-right text-md-left" for="formGroupExampleInput">Example label:</label>
<input class="form-control-sm col-md-4" type="text" id="formGroupExampleInput" placeholder="Example input">
<label class="col-form-label-sm col-md-2 text-md-right text-md-left" for="formGroupExampleInput2">Another label:</label>
<input class="form-control-sm col-md-4" type="text" id="formGroupExampleInput2" placeholder="Another input">
</div>
</div>
<div class="row">
<div class="form-group row col-sm-12">
<label class="col-form-label-sm col-md-2 text-md-right text-sm-left" for="formGroupExampleInputA">Example label 2:</label>
<input class="form-control-sm col-md-4" type="text" id="formGroupExampleInputA" placeholder="Example input">
<label class="col-form-label-sm col-md-2 text-md-right text-sm-left" for="formGroupExampleInput2">Another label 2:</label>
<input class="form-control-sm col-md-4" type="text" id="formGroupExampleInputA2" placeholder="Another input">
</div>
</div>
<div class="row">
<div class="form-group row col-sm-12">
<label class="col-form-label-sm col-md-2 text-md-right text-sm-left" for="formGroupExampleInputA">Example label 2:</label>
<input class="form-control-sm col-md-10" type="text" id="formGroupExampleInputA" placeholder="Example input">
</div>
</div>
</fieldset>
<fieldset><legend>Set 2</legend>
<fieldset><legend>Set 2.1</legend>
<div class="row">
<div class="form-group row col-md-4 col-sm-12">
<label class="col-form-label-sm col-md-6 text-md-right text-sm-left" for="formGroupExampleInput">Example label 2.1:</label>
<input class="form-control-sm col-md-6" type="text" id="formGroupExampleInput" placeholder="Example input">
</div>
<div class="form-group row col-md-8 col-sm-12">
<label class="col-form-label-sm col-md-3 text-md-right text-sm-left" for="formGroupExampleInput2">Another label 2.1:</label>
<input class="form-control-sm col-md-9" type="text" id="formGroupExampleInput2" placeholder="Another input">
</div>
</div>
<div class="row">
<div class="form-group row col-md-4 col-sm-12">
<label class="col-form-label-sm col-md-6 text-md-right text-sm-left" for="formGroupExampleInput">Example label 2.1a:</label>
<input class="form-control-sm col-md-6" type="text" id="formGroupExampleInput" placeholder="Example input">
</div>
<div class="form-group row col-md-8 col-sm-12">
<label class="col-form-label-sm col-md-3 text-md-right text-sm-left" for="formGroupExampleInput2">Another label 2.1a:</label>
<input class="form-control-sm col-md-3" type="text" id="formGroupExampleInput2" placeholder="Another input">
<label class="col-form-label-sm col-md-3 text-md-right text-sm-left" for="formGroupExampleInput2">Third label 2.1a:</label>
<input class="form-control-sm col-md-3" type="text" id="formGroupExampleInput2" placeholder="Another input">
</div>
</div>
</fieldset>
<fieldset><legend>Set 2.2</legend>
<div class="row">
<div class="form-group row col-md-4 col-sm-12">
<label class="col-form-label-sm col-md-6 text-md-right text-sm-left" for="formGroupExampleInput">Example label 2.2:</label>
<input class="form-control-sm col-md-6" type="text" id="formGroupExampleInput" placeholder="Example input">
</div>
<div class="form-group row col-md-8 col-sm-12">
<label class="col-form-label-sm col-md-3 text-md-right text-sm-left" for="formGroupExampleInput2">Another label 2.2:</label>
<input class="form-control-sm col-md-9" type="text" id="formGroupExampleInput2" placeholder="Another input">
</div>
</div>
<div class="row">
<div class="form-group row col-md-4 col-sm-12">
<label class="col-form-label-sm col-md-6 text-md-right text-sm-left" for="formGroupExampleInput">Example label 2.2a:</label>
<input class="form-control-sm col-md-6" type="text" id="formGroupExampleInput" placeholder="Example input">
</div>
<div class="form-group row col-md-8 col-sm-12">
<label class="col-form-label-sm col-md-3 text-md-right text-sm-left" for="formGroupExampleInput2">Another label 2.2a:</label>
<input class="form-control-sm col-md-3" type="text" id="formGroupExampleInput2" placeholder="Another input">
<label class="col-form-label-sm col-md-3 text-md-right text-sm-left" for="formGroupExampleInput2">Third label 2.2a:</label>
<input class="form-control-sm col-md-3" type="text" id="formGroupExampleInput2" placeholder="Another input">
</div>
</fieldset>
</fieldset>
</form>
</div>