Restartujte
Reboot, sbírka změn CSS specifických pro jednotlivé prvky v jediném souboru, nastartuje Bootstrap, aby poskytl elegantní, konzistentní a jednoduchý základ, na kterém lze stavět.
Přístup
Reboot staví na Normalize a poskytuje mnoha prvkům HTML poněkud svérázné styly pouze pomocí selektorů prvků. Další styling se provádí pouze u tříd. Například restartujeme některé <table>
styly pro jednodušší základní linii a později poskytneme .table
, .table-bordered
, a další.
Zde jsou naše pokyny a důvody pro výběr toho, co přepsat při restartu:
- Aktualizujte některé výchozí hodnoty prohlížeče tak, aby
rem
místoem
s pro škálovatelné rozestupy součástí používaly s. - Vyhněte se
margin-top
. Svislé okraje se mohou zhroutit a přinést neočekávané výsledky. Ještě důležitější však je, že jeden směrmargin
je jednodušší mentální model. - Pro snadnější škálování napříč velikostmi zařízení by prvky bloku měly používat
rem
s promargin
s. - Omezte deklarace
font
souvisejících vlastností na minimum a používejte je,inherit
kdykoli je to možné.
CSS proměnné
Přidáno ve verzi 5.2.0Ve verzi 5.1.1 jsme standardizovali naše požadované @import
s ve všech našich balíčcích CSS (včetně bootstrap.css
, bootstrap-reboot.css
, a bootstrap-grid.css
), aby zahrnovaly _root.scss
. To přidá :root
proměnné CSS úrovně do všech balíčků bez ohledu na to, kolik jich je v tomto balíčku použito. Nakonec Bootstrap 5 bude i nadále v průběhu času přidávat více proměnných CSS , aby bylo možné poskytovat více přizpůsobení v reálném čase bez nutnosti vždy znovu kompilovat Sass. Náš přístup spočívá v tom, že vezmeme naše zdrojové proměnné Sass a transformujeme je na proměnné CSS. Tímto způsobem, i když nepoužíváte proměnné CSS, stále máte veškerou sílu Sass. Toto je stále ve vývoji a jeho úplná implementace bude nějakou dobu trvat.
Zvažte například tyto :root
proměnné CSS pro běžné <body>
styly:
@if $font-size-root != null {
--#{$prefix}root-font-size: #{$font-size-root};
}
--#{$prefix}body-font-family: #{$font-family-base};
@include rfs($font-size-base, --#{$prefix}body-font-size);
--#{$prefix}body-font-weight: #{$font-weight-base};
--#{$prefix}body-line-height: #{$line-height-base};
--#{$prefix}body-color: #{$body-color};
@if $body-text-align != null {
--#{$prefix}body-text-align: #{$body-text-align};
}
--#{$prefix}body-bg: #{$body-bg};
V praxi se pak tyto proměnné použijí v Rebootu takto:
body {
margin: 0; // 1
font-family: var(--#{$prefix}body-font-family);
@include font-size(var(--#{$prefix}body-font-size));
font-weight: var(--#{$prefix}body-font-weight);
line-height: var(--#{$prefix}body-line-height);
color: var(--#{$prefix}body-color);
text-align: var(--#{$prefix}body-text-align);
background-color: var(--#{$prefix}body-bg); // 2
-webkit-text-size-adjust: 100%; // 3
-webkit-tap-highlight-color: rgba($black, 0); // 4
}
Což vám umožňuje provádět úpravy v reálném čase, jak chcete:
<body style="--bs-body-color: #333;">
<!-- ... -->
</body>
Výchozí nastavení stránky
Prvky <html>
a <body>
jsou aktualizovány, aby poskytovaly lepší výchozí hodnoty pro celou stránku. Konkrétněji:
- Je
box-sizing
globálně nastaven na každý prvek – včetně*::before
a*::after
, ažborder-box
. To zajišťuje, že deklarovaná šířka prvku nebude nikdy překročena kvůli odsazení nebo ohraničení.- Žádný základ
font-size
není deklarován na<html>
, ale16px
předpokládá se (výchozí nastavení prohlížeče).font-size: 1rem
se používá<body>
pro snadnou odezvu typového škálování prostřednictvím mediálních dotazů při respektování preferencí uživatelů a zajištění přístupnějšího přístupu. Toto výchozí nastavení prohlížeče lze přepsat úpravou$font-size-root
proměnné.
- Žádný základ
- Také
<body>
nastaví globálnífont-family
,font-weight
,line-height
acolor
. To je později zděděno některými prvky formuláře, aby se předešlo nekonzistentnosti písem. - Pro bezpečnost
<body>
má deklarovánobackground-color
, výchozí je#fff
.
Zásobník nativních písem
Bootstrap využívá „nativní zásobník písem“ nebo „zásobník systémových písem“ pro optimální vykreslování textu na každém zařízení a operačním systému. Tato systémová písma byla navržena speciálně s ohledem na dnešní zařízení, s vylepšeným vykreslováním na obrazovkách, podporou proměnných písem a dalšími. Přečtěte si více o nativních sadách písem v tomto článku časopisu Smashing Magazine .
$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,
// older macOS and iOS
"Helvetica Neue"
// Linux
"Noto Sans",
"Liberation Sans",
// Basic web fallback
Arial,
// Sans serif fallback
sans-serif,
// Emoji fonts
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
Všimněte si, že protože zásobník písem obsahuje písma emoji, mnoho běžných znaků Unicode symbolů/dingbat bude vykresleno jako vícebarevné piktogramy. Jejich vzhled se bude lišit v závislosti na stylu použitém v nativním písmu emoji prohlížeče/platformy a nebudou ovlivněny žádnými color
styly CSS.
Toto font-family
se aplikuje na <body>
a automaticky se globálně dědí v celém Bootstrapu. Chcete-li přepnout globální font-family
, aktualizujte $font-family-base
a znovu zkompilujte Bootstrap.
Nadpisy a odstavce
Všechny prvky nadpisu – např. – a jsou <h1>
resetovány <p>
, aby byly margin-top
odstraněny. Nadpisy byly margin-bottom: .5rem
přidány a odstavce margin-bottom: 1rem
pro snadné vytváření mezer.
Nadpis | Příklad |
---|---|
<h1></h1> |
h1. Bootstrap nadpis |
<h2></h2> |
h2. Bootstrap nadpis |
<h3></h3> |
h3. Bootstrap nadpis |
<h4></h4> |
h4. Bootstrap nadpis |
<h5></h5> |
h5. Bootstrap nadpis |
<h6></h6> |
h6. Bootstrap nadpis |
Horizontální pravidla
Prvek <hr>
byl zjednodušen. Podobně jako výchozí nastavení prohlížeče <hr>
jsou s stylizovány pomocí border-top
, mají výchozí hodnotu opacity: .25
a automaticky dědí jejich border-color
prostřednictvím color
, včetně toho, kdy color
je nastaveno prostřednictvím nadřazeného prvku. Lze je upravit pomocí nástrojů pro text, ohraničení a neprůhlednost.
<hr>
<div class="text-success">
<hr>
</div>
<hr class="border border-danger border-2 opacity-50">
<hr class="border border-primary border-3 opacity-75">
Seznamy
Všechny seznamy <ul>
– , <ol>
, a <dl>
– mají margin-top
odstraněny a margin-bottom: 1rem
. Vnořené seznamy nemají margin-bottom
. Také jsme resetovali prvky padding-left
on <ul>
a <ol>
.
- Všechny seznamy mají odstraněný horní okraj
- A jejich spodní okraj se normalizoval
- Vnořené seznamy nemají spodní okraj
- Tímto způsobem mají rovnoměrnější vzhled
- Zvláště když následuje více položek seznamu
- Levé polstrování bylo také resetováno
- Zde je seřazený seznam
- S několika položkami seznamu
- Má stejný celkový vzhled
- Jako předchozí neuspořádaný seznam
Pro jednodušší styl, jasnou hierarchii a lepší rozestupy mají seznamy popisů aktualizované margin
s. <dd>
s resetovat a margin-left
přidat . s jsou tučně .0
margin-bottom: .5rem
<dt>
- Popisné seznamy
- Popisný seznam je ideální pro definování termínů.
- Období
- Definice termínu.
- Druhá definice pro stejný termín.
- Další termín
- Definice tohoto jiného termínu.
Vložený kód
Zabalte vložené úryvky kódu pomocí <code>
. Ujistěte se, že uvozujete lomené závorky HTML.
<section>
by měl být zabalen jako vložený.
For example, <code><section></code> should be wrapped as inline.
Bloky kódu
Použijte <pre>
s pro více řádků kódu. Pro správné vykreslení se ještě jednou ujistěte, že jste v kódu opustili všechny lomené závorky. Prvek <pre>
je resetován, aby byl odstraněn margin-top
a použity rem
jednotky pro jeho 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>
Proměnné
Pro indikaci proměnných použijte <var>
tag.
<var>y</var> = <var>m</var><var>x</var> + <var>b</var>
Uživatelský vstup
Použijte <kbd>
k označení vstupu, který se obvykle zadává pomocí klávesnice.
Chcete-li upravit nastavení, stiskněte 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>
Ukázkový výstup
Pro indikaci ukázkového výstupu z programu použijte <samp>
tag.
<samp>This text is meant to be treated as sample output from a computer program.</samp>
Tabulky
Tabulky jsou mírně upraveny podle stylu <caption>
s, sbalí okraje a zajistí konzistentnost text-align
v celém textu. Další změny pro okraje, výplň a další přicházejí s .table
třídou .
Záhlaví tabulky | Záhlaví tabulky | Záhlaví tabulky | Záhlaví tabulky |
---|---|---|---|
Buňka tabulky | Buňka tabulky | Buňka tabulky | Buňka tabulky |
Buňka tabulky | Buňka tabulky | Buňka tabulky | Buňka tabulky |
Buňka tabulky | Buňka tabulky | Buňka tabulky | Buňka tabulky |
<table>
<caption>
This is an example table, and this is its caption to describe the contents.
</caption>
<thead>
<tr>
<th>Table heading</th>
<th>Table heading</th>
<th>Table heading</th>
<th>Table heading</th>
</tr>
</thead>
<tbody>
<tr>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
</tr>
<tr>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
</tr>
<tr>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
</tr>
</tbody>
</table>
formuláře
Pro jednodušší základní styly byly restartovány různé prvky formuláře. Zde jsou některé z nejpozoruhodnějších změn:
<fieldset>
s nemají žádné okraje, odsazení ani okraj, takže je lze snadno použít jako obaly pro jednotlivé vstupy nebo skupiny vstupů.<legend>
s, stejně jako sady polí, byly také upraveny tak, aby se zobrazovaly jako nadpisy druhů.<label>
s jsou nastaveny nadisplay: inline-block
, aby bylomargin
možné je použít.<input>
s,<select>
s,<textarea>
s, and<button>
s are mostly addressed by Normalize, but Reboot removes theirmargin
and setsline-height: inherit
, too.<textarea>
s are modified to only be resizable vertically as horizontal resizing often “breaks” page layout.<button>
s and<input>
button elements havecursor: pointer
when:not(:disabled)
.
These changes, and more, are demonstrated below.
Date & color input support
Keep in mind date inputs are not fully supported by all browsers, namely Safari.
Pointers on buttons
Reboot includes an enhancement for role="button"
to change the default cursor to pointer
. Add this attribute to elements to help indicate elements are interactive. This role isn’t necessary for <button>
elements, which get their own cursor
change.
<span role="button" tabindex="0">Non-button element button</span>
Misc elements
Address
The <address>
element is updated to reset the browser default font-style
from italic
to normal
. line-height
is also now inherited, and margin-bottom: 1rem
has been added. <address>
s are for presenting contact information for the nearest ancestor (or an entire body of work). Preserve formatting by ending lines with <br>
.
1355 Market St, Suite 900
San Francisco, CA 94103
P: (123) 456-7890 Full Name
[email protected]
Blockquote
The default margin
on blockquotes is 1em 40px
, so we reset that to 0 0 1rem
for something more consistent with other elements.
A well-known quote, contained in a blockquote element.
Someone famous in Source Title
Inline elements
The <abbr>
element receives basic styling to make it stand out amongst paragraph text.
Summary
The default cursor
on summary is text
, so we reset that to pointer
to convey that the element can be interacted with by clicking on it.
Some details
More info about the details.
Even more details
Here are even more details about the details.
HTML5 [hidden]
attribute
HTML5 adds a new global attribute named [hidden]
, which is styled as display: none
by default. Borrowing an idea from PureCSS, we improve upon this default by making [hidden] { display: none !important; }
to help prevent its display
from getting accidentally overridden.
<input type="text" hidden>
jQuery incompatibility
[hidden]
is not compatible with jQuery’s $(...).hide()
and $(...).show()
methods. Therefore, we don’t currently especially endorse [hidden]
over other techniques for managing the display
of elements.
To merely toggle the visibility of an element, meaning its display
is not modified and the element can still affect the flow of the document, use the .invisible
class instead.