Neustart
Reboot, eine Sammlung elementspezifischer CSS-Änderungen in einer einzigen Datei, Kickstart Bootstrap, um eine elegante, konsistente und einfache Grundlage bereitzustellen, auf der aufgebaut werden kann.
Sich nähern
Reboot baut auf Normalize auf und stellt viele HTML-Elemente mit etwas eigenwilligen Stilen bereit, die nur Elementselektoren verwenden. Zusätzliches Styling erfolgt nur mit Klassen. Beispielsweise starten wir einige <table>
Stile für eine einfachere Grundlinie neu und stellen später .table
, .table-bordered
, und mehr bereit.
Hier sind unsere Richtlinien und Gründe für die Auswahl, was beim Neustart überschrieben werden soll:
- Aktualisieren Sie einige Browser-Standardwerte, um
rem
s anstelle vonem
s für skalierbare Komponentenabstände zu verwenden. - Vermeiden
margin-top
. Vertikale Ränder können zusammenbrechen und zu unerwarteten Ergebnissen führen. Noch wichtiger ist jedoch, dass eine einzige Richtungmargin
ein einfacheres mentales Modell ist. - Für eine einfachere Skalierung über Gerätegrößen hinweg sollten Blockelemente
rem
s fürmargin
s verwenden. - Beschränken Sie Deklarationen von
font
-bezogenen Eigenschaften auf ein Minimum und verwenden Sieinherit
wann immer möglich.
CSS-Variablen
Hinzugefügt in v5.1.1
Mit v5.1.1 haben wir unsere erforderlichen @import
s für alle unsere CSS-Bundles standardisiert (einschließlich bootstrap.css
, bootstrap-reboot.css
, und bootstrap-grid.css
, um _root.scss
. Dies fügt :root
Level-CSS-Variablen zu allen Bundles hinzu, unabhängig davon, wie viele davon in diesem Bundle verwendet werden. Letztendlich wird Bootstrap 5 dies auch weiterhin tun sehen Sie sich weitere CSS-Variablen an, die im Laufe der Zeit hinzugefügt wurden.
Seitenvorgaben
Die Elemente <html>
und <body>
wurden aktualisiert, um bessere seitenweite Standardwerte bereitzustellen. Genauer:
- Das
box-sizing
wird global für jedes Element festgelegt – einschließlich*::before
und*::after
, bisborder-box
. Dadurch wird sichergestellt, dass die deklarierte Breite des Elements niemals durch Polsterung oder Umrandung überschritten wird.- Auf der wird keine Basis
font-size
deklariert<html>
, sondern16px
angenommen (die Standardeinstellung des Browsers).font-size: 1rem
wird auf der<body>
für eine einfache reaktionsschnelle Typskalierung über Medienabfragen angewendet, wobei die Benutzereinstellungen berücksichtigt und ein zugänglicherer Ansatz gewährleistet werden. Diese Browservorgabe kann durch Ändern der$font-size-root
Variablen überschrieben werden.
- Auf der wird keine Basis
- Der
<body>
setzt auch ein globalesfont-family
,font-weight
,line-height
undcolor
. Dies wird später von einigen Formularelementen vererbt, um Schriftinkonsistenzen zu vermeiden. - Aus Sicherheitsgründen hat das
<body>
ein deklariertesbackground-color
, standardmäßig#fff
.
Stapel nativer Schriftarten
Bootstrap verwendet einen „nativen Font-Stack“ oder „System-Font-Stack“ für eine optimale Textwiedergabe auf jedem Gerät und Betriebssystem. Diese Systemschriftarten wurden speziell für die heutigen Geräte entwickelt, mit verbesserter Darstellung auf Bildschirmen, Unterstützung variabler Schriftarten und mehr. Lesen Sie mehr über native Font-Stacks in diesem Smashing Magazine- Artikel .
$font-family-sans-serif:
// Cross-platform generic font family (default user interface font)
system-ui,
// Safari for macOS and iOS (San Francisco)
-apple-system,
// Windows
"Segoe UI",
// Android
Roboto,
// Basic web fallback
"Helvetica Neue", Arial,
// Linux
"Noto Sans",
"Liberation Sans",
// Sans serif fallback
sans-serif,
// Emoji fonts
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
Beachten Sie, dass viele gängige Symbol-/Dingbat-Unicode-Zeichen als mehrfarbige Piktogramme gerendert werden, da der Schriftartstapel Emoji-Schriftarten enthält. Ihr Aussehen variiert je nach Stil, der in der nativen Emoji-Schriftart des Browsers/der Plattform verwendet wird, und sie werden nicht von CSS- color
Stilen beeinflusst.
Dies font-family
wird auf Bootstrap angewendet <body>
und automatisch global vererbt. Um das globale zu wechseln font-family
, aktualisieren $font-family-base
und kompilieren Sie Bootstrap neu.
CSS-Variablen
Während Bootstrap 5 weiter reift, werden immer mehr Stile mit CSS-Variablen erstellt, um mehr Anpassungen in Echtzeit zu ermöglichen, ohne dass Sass immer neu kompiliert werden muss. Unser Ansatz besteht darin, unsere Quell-Sass-Variablen zu nehmen und sie in CSS-Variablen umzuwandeln. Auf diese Weise haben Sie, selbst wenn Sie keine CSS-Variablen verwenden, immer noch die gesamte Leistungsfähigkeit von Sass. Dies ist noch in Arbeit und wird einige Zeit dauern, bis es vollständig implementiert ist.
Betrachten Sie beispielsweise diese :root
CSS-Variablen für gängige <body>
Stile:
@if $font-size-root != null {
--#{$variable-prefix}root-font-size: #{$font-size-root};
}
--#{$variable-prefix}body-font-family: #{$font-family-base};
--#{$variable-prefix}body-font-size: #{$font-size-base};
--#{$variable-prefix}body-font-weight: #{$font-weight-base};
--#{$variable-prefix}body-line-height: #{$line-height-base};
--#{$variable-prefix}body-color: #{$body-color};
@if $body-text-align != null {
--#{$variable-prefix}body-text-align: #{$body-text-align};
}
--#{$variable-prefix}body-bg: #{$body-bg};
In der Praxis werden diese Variablen dann beim Neustart wie folgt angewendet:
body {
margin: 0; // 1
font-family: var(--#{$variable-prefix}body-font-family);
@include font-size(var(--#{$variable-prefix}body-font-size));
font-weight: var(--#{$variable-prefix}body-font-weight);
line-height: var(--#{$variable-prefix}body-line-height);
color: var(--#{$variable-prefix}body-color);
text-align: var(--#{$variable-prefix}body-text-align);
background-color: var(--#{$variable-prefix}body-bg); // 2
-webkit-text-size-adjust: 100%; // 3
-webkit-tap-highlight-color: rgba($black, 0); // 4
}
Dadurch können Sie in Echtzeit Anpassungen vornehmen, wie Sie möchten:
<body style="--bs-body-color: #333;">
<!-- ... -->
</body>
Überschriften und Absätze
Alle Überschriftenelemente – z. B. – <h1>
und <p>
werden zurückgesetzt, damit sie margin-top
entfernt werden. Überschriften wurden margin-bottom: .5rem
hinzugefügt und Absätze margin-bottom: 1rem
für einfache Abstände.
Überschrift | Beispiel |
---|---|
<h1></h1> |
h1. Bootstrap-Überschrift |
<h2></h2> |
h2. Bootstrap-Überschrift |
<h3></h3> |
h3. Bootstrap-Überschrift |
<h4></h4> |
h4. Bootstrap-Überschrift |
<h5></h5> |
h5. Bootstrap-Überschrift |
<h6></h6> |
h6. Bootstrap-Überschrift |
Listen
Alle Listen <ul>
– , <ol>
, und <dl>
– haben ihre margin-top
entfernt und ein margin-bottom: 1rem
. Verschachtelte Listen haben keine margin-bottom
. Wir haben auch die Elemente padding-left
on <ul>
und zurückgesetzt.<ol>
- Bei allen Listen wurde der obere Rand entfernt
- Und ihre untere Marge normalisierte sich
- Verschachtelte Listen haben keinen unteren Rand
- Dadurch erhalten sie ein gleichmäßigeres Erscheinungsbild
- Besonders, wenn weitere Listenelemente folgen
- Die linke Polsterung wurde ebenfalls zurückgesetzt
- Hier ist eine geordnete Liste
- Mit ein paar Listenpunkten
- Es hat das gleiche Gesamtbild
- Wie die vorherige ungeordnete Liste
Für ein einfacheres Styling, eine klare Hierarchie und bessere Abstände wurden die Beschreibungslisten aktualisiert margin
. <dd>
s zurücksetzen margin-left
auf 0
und hinzufügen margin-bottom: .5rem
. <dt>
s sind fett gedruckt .
- Beschreibungslisten
- Eine Beschreibungsliste ist perfekt, um Begriffe zu definieren.
- Begriff
- Definition für den Begriff.
- Eine zweite Definition für denselben Begriff.
- Ein anderer Begriff
- Definition für diesen anderen Begriff.
Inline-Code
Umschließen Sie Inline-Codeschnipsel mit <code>
. Stellen Sie sicher, dass spitze HTML-Klammern maskiert werden.
<section>
als Inline umbrochen werden.
For example, <code><section></code> should be wrapped as inline.
Codeblöcke
Verwenden Sie <pre>
s für mehrere Codezeilen. Stellen Sie auch hier sicher, dass Sie alle spitzen Klammern im Code maskieren, um eine korrekte Darstellung zu gewährleisten. Das <pre>
Element wird zurückgesetzt, um seine zu entfernen margin-top
und rem
Einheiten für seine zu verwenden margin-bottom
.
<p>Sample text here...</p>
<p>And another line of sample text here...</p>
<pre><code><p>Sample text here...</p>
<p>And another line of sample text here...</p>
</code></pre>
Variablen
Verwenden Sie zum Anzeigen von Variablen das <var>
Tag.
<var>y</var> = <var>m</var><var>x</var> + <var>b</var>
Benutzereingabe
Verwenden Sie das <kbd>
, um Eingaben anzuzeigen, die normalerweise über die Tastatur eingegeben werden.
Um die Einstellungen zu bearbeiten, drücken Sie ctrl + ,
To switch directories, type <kbd>cd</kbd> followed by the name of the directory.<br>
To edit settings, press <kbd><kbd>ctrl</kbd> + <kbd>,</kbd></kbd>
Beispielausgabe
Um Beispielausgaben von einem Programm anzuzeigen, verwenden Sie das <samp>
Tag.
<samp>This text is meant to be treated as sample output from a computer program.</samp>
Tische
Tabellen sind leicht an die Stile angepasst <caption>
, reduzieren die Ränder und sorgen für text-align
durchgehende Konsistenz. Zusätzliche Änderungen für Rahmen, Polsterung und mehr kommen mit der .table
Klasse .
Tabellenüberschrift | Tabellenüberschrift | Tabellenüberschrift | Tabellenüberschrift |
---|---|---|---|
Tabellenzelle | Tabellenzelle | Tabellenzelle | Tabellenzelle |
Tabellenzelle | Tabellenzelle | Tabellenzelle | Tabellenzelle |
Tabellenzelle | Tabellenzelle | Tabellenzelle | Tabellenzelle |
Formen
Verschiedene Formularelemente wurden für einfachere Basisstile neu gestartet. Hier sind einige der bemerkenswertesten Änderungen:
<fieldset>
s haben keine Rahmen, Auffüllungen oder Ränder, sodass sie einfach als Wrapper für einzelne Eingaben oder Gruppen von Eingaben verwendet werden können.<legend>
s wurden ebenso wie Fieldsets umgestaltet, um als eine Art Überschrift angezeigt zu werden.<label>
s sind so eingestellt,display: inline-block
dassmargin
sie angewendet werden können.<input>
s,<select>
s,<textarea>
s und<button>
s werden meistens von Normalize angesprochen, aber Reboot entfernt auch ihremargin
und setztline-height: inherit
.<textarea>
s werden so geändert, dass sie nur vertikal in der Größe geändert werden können, da die horizontale Größenänderung häufig das Seitenlayout „unterbricht“.<button>
s und<input>
Button-Elemente habencursor: pointer
when:not(:disabled)
.
Diese Änderungen und mehr werden im Folgenden demonstriert.
Datums- und Farbeingabeunterstützung
Beachten Sie, dass Datumseingaben nicht von allen Browsern vollständig unterstützt werden, insbesondere von Safari.
Zeiger auf Schaltflächen
Reboot enthält eine Verbesserung role="button"
, um den Standardcursor in zu ändern pointer
. Fügen Sie dieses Attribut zu Elementen hinzu, um anzuzeigen, dass Elemente interaktiv sind. <button>
Diese Rolle ist für Elemente, die ihre eigene cursor
Änderung erhalten, nicht erforderlich .
<span role="button" tabindex="0">Non-button element button</span>
Verschiedene Elemente
Adresse
Das <address>
Element wird aktualisiert, um den Browserstandard font-style
von italic
auf zurückzusetzen normal
. line-height
ist jetzt auch vererbt und margin-bottom: 1rem
wurde hinzugefügt. <address>
s dienen zum Präsentieren von Kontaktinformationen für den nächsten Vorfahren (oder ein ganzes Werk). Behalten Sie die Formatierung bei, indem Sie Zeilen mit beenden <br>
.
1355 Market St, Suite 900
San Francisco, CA 94103
P: (123) 456-7890 Vollständiger Name
first.last@example.com
Blockzitat
Der Standardwert margin
für Blockquotes ist 1em 40px
, also setzen wir das auf zurück, 0 0 1rem
um etwas konsistenteres mit anderen Elementen zu erreichen.
Ein bekanntes Zitat, das in einem Blockquote-Element enthalten ist.
Jemand, der in Source Title berühmt ist
Inline-Elemente
Das <abbr>
Element erhält ein einfaches Styling, um es vom Absatztext abzuheben.
Zusammenfassung
Der Standardwert cursor
für die Zusammenfassung ist text
, also setzen wir das auf zurück, um pointer
zu vermitteln, dass mit dem Element interagiert werden kann, indem man darauf klickt.
Ein paar Details
Mehr Infos zu den Details.
Noch mehr Details
Hier noch mehr Details zu den Details.
HTML5- [hidden]
Attribut
HTML5 fügt ein neues globales Attribut namens[hidden]
hinzu , das display: none
standardmäßig wie folgt formatiert ist. In Anlehnung an eine Idee von PureCSS verbessern wir diese Standardeinstellung, indem wir [hidden] { display: none !important; }
dazu beitragen, dass display
sie nicht versehentlich überschrieben wird.
<input type="text" hidden>
jQuery-Inkompatibilität
[hidden]
ist nicht kompatibel mit jQuery $(...).hide()
und $(...).show()
Methoden. Daher unterstützen wir derzeit [hidden]
andere Techniken zur Verwaltung der display
Elemente nicht besonders.
Um lediglich die Sichtbarkeit eines Elements umzuschalten, d. h. display
es wird nicht geändert und das Element kann immer noch den Fluss des Dokuments beeinflussen, verwenden Sie stattdessen die .invisible
Klasse .