Reporniți
Repornire, o colecție de modificări CSS specifice unui element într-un singur fișier, pornește Bootstrap pentru a oferi o bază elegantă, consecventă și simplă pe care să o construiți.
Abordare
Repornirea se bazează pe Normalize, oferind multe elemente HTML cu stiluri oarecum obișnuite, folosind doar selectori de elemente. Stilizarea suplimentară se face numai cu cursuri. De exemplu, repornim unele <table>
stiluri pentru o linie de bază mai simplă și mai târziu oferim .table
, .table-bordered
și multe altele.
Iată instrucțiunile și motivele noastre pentru a alege ce să înlocuiți în repornire:
- Actualizați unele valori implicite ale browserului pentru a utiliza
rem
s în loc deem
s pentru spațierea componentelor scalabilă. - Evitați
margin-top
. Marginile verticale se pot prăbuși, dând rezultate neașteptate. Mai important, totuși, o singură direcțiemargin
este un model mental mai simplu. - Pentru o scalare mai ușoară pe dimensiunile dispozitivului, elementele bloc ar trebui să folosească
rem
s pentrumargin
s. - Păstrați declarațiile de
font
proprietăți legate de -la un nivel minim, folosind ori deinherit
câte ori este posibil.
Valori implicite ale paginii
Elementele <html>
și <body>
sunt actualizate pentru a oferi valori implicite mai bune la nivel de pagină. Mai exact:
- Este
box-sizing
setat global pentru fiecare element, inclusiv*::before
și*::after
, laborder-box
. Acest lucru asigură că lățimea declarată a elementului nu este niciodată depășită din cauza căptușelii sau a chenarului. - Nicio bază nu
font-size
este declarată pe<html>
, dar16px
este presupusă (prestabilit browser).font-size: 1rem
este aplicat<body>
pentru o scalare ușoară a tipului de răspuns prin interogări media, respectând în același timp preferințele utilizatorului și asigurând o abordare mai accesibilă. - De
<body>
asemenea, setează un globalfont-family
,line-height
, șitext-align
. Acest lucru este moștenit mai târziu de unele elemente de formular pentru a preveni inconsecvențele fonturilor. - Pentru siguranță,
<body>
are un declaratbackground-color
, implicit la#fff
.
Stiva de fonturi native
Fonturile web implicite (Helvetica Neue, Helvetica și Arial) au fost eliminate în Bootstrap 4 și înlocuite cu o „stivă de fonturi native” pentru redarea optimă a textului pe fiecare dispozitiv și sistem de operare. Citiți mai multe despre stivele de fonturi native în acest articol Smashing Magazine .
$font-family-sans-serif:
// Safari for macOS and iOS (San Francisco)
-apple-system,
// Chrome < 56 for macOS (San Francisco)
BlinkMacSystemFont,
// 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;
Rețineți că, deoarece stiva de fonturi include fonturi emoji, multe simboluri comune/dingbat Unicode vor fi redate ca pictograme multicolore. Aspectul lor va varia, în funcție de stilul folosit în fontul emoji nativ al browserului/platformei și nu vor fi afectați de niciun color
stil CSS.
Acest lucru font-family
este aplicat <body>
și moștenit automat la nivel global prin Bootstrap. Pentru a comuta la nivel global font-family
, actualizați $font-family-base
și recompilați Bootstrap.
Titluri și paragrafe
Toate elementele de antet, de exemplu, <h1>
și <p>
sunt resetate pentru a fi margin-top
eliminate. S-au margin-bottom: .5rem
adăugat titluri și paragrafe margin-bottom: 1rem
pentru spațiere ușoară.
Titlu | Exemplu |
---|---|
<h1></h1> |
h1. Titlu bootstrap |
<h2></h2> |
h2. Titlu bootstrap |
<h3></h3> |
h3. Titlu bootstrap |
<h4></h4> |
h4. Titlu bootstrap |
<h5></h5> |
h5. Titlu bootstrap |
<h6></h6> |
h6. Titlu bootstrap |
Liste
Toate listele — <ul>
, <ol>
, și <dl>
— au margin-top
fost eliminate și un margin-bottom: 1rem
. Listele imbricate nu au margin-bottom
.
- Toate listele au marja de sus eliminată
- Și marja lor inferioară s-a normalizat
- Listele imbricate nu au margine de jos
- Astfel au un aspect mai uniform
- În special atunci când este urmat de mai multe elemente din listă
- Căptușeala din stânga a fost de asemenea resetată
- Iată o listă ordonată
- Cu câteva elemente din listă
- Are același aspect general
- Ca și lista anterioară neordonată
Pentru un stil mai simplu, o ierarhie clară și o spațiere mai bună, listele de descriere au actualizate margin
s. s <dd>
resetați și adăugați . s sunt îngroșate .margin-left
0
margin-bottom: .5rem
<dt>
- Liste de descriere
- O listă de descriere este perfectă pentru definirea termenilor.
- Termen
- Definiție pentru termen.
- O a doua definiție pentru același termen.
- Un alt termen
- Definiție pentru acest alt termen.
Text preformatat
Elementul <pre>
este resetat pentru a-și elimina margin-top
și pentru a utiliza rem
unități pentru margin-bottom
.
.example-element { margine-jos: 1rem; }
Mese
Tabelele sunt ușor ajustate la stiluri <caption>
, restrânge chenarele și asigură coerență text-align
pe tot parcursul. Modificări suplimentare pentru chenare, umplutură și multe altele vin cu clasa .table
.
Titlul tabelului | Titlul tabelului | Titlul tabelului | Titlul tabelului |
---|---|---|---|
Celula de tabel | Celula de tabel | Celula de tabel | Celula de tabel |
Celula de tabel | Celula de tabel | Celula de tabel | Celula de tabel |
Celula de tabel | Celula de tabel | Celula de tabel | Celula de tabel |
Forme
Diverse elemente de formular au fost repornite pentru stiluri de bază mai simple. Iată câteva dintre cele mai notabile schimbări:
<fieldset>
Nu au margini, umplutură sau marjă, astfel încât acestea pot fi utilizate cu ușurință ca înveliș pentru intrări individuale sau grupuri de intrări.<legend>
S-urile, ca și seturile de câmpuri, au fost, de asemenea, modificate pentru a fi afișate ca un fel de titlu.<label>
s sunt setate pentrudisplay: inline-block
a permitemargin
aplicarea.<input>
s,<select>
s,<textarea>
s și<button>
s sunt abordate în cea mai mare parte de Normalize, dar Reboot eliminămargin
și seturile lor șiline-height: inherit
.<textarea>
E-urile sunt modificate pentru a putea fi redimensionate doar pe verticală, deoarece redimensionarea orizontală „întrerupe” adesea aspectul paginii.<button>
elementele s și<input>
buton aucursor: pointer
când:not(:disabled)
.
Aceste schimbări și multe altele sunt demonstrate mai jos.
Indicatoare pe butoane
Repornirea include o îmbunătățire pentru role="button"
a schimba cursorul implicit în pointer
. Adăugați acest atribut elementelor pentru a indica elementele interactive. Acest rol nu este necesar pentru <button>
elemente, care primesc propria lor cursor
schimbare.
<span role="button" tabindex="0">Non-button element button</span>
Diverse elemente
Abordare
Elementul <address>
este actualizat pentru a reseta browserul implicit font-style
de la italic
la normal
. line-height
este și acum moștenit și margin-bottom: 1rem
a fost adăugat. <address>
sunt pentru prezentarea informațiilor de contact pentru cel mai apropiat strămoș (sau un întreg corp de lucrare). Păstrați formatarea terminând liniile cu <br>
.
1355 Market St, Suite 900
San Francisco, CA 94103
P: (123) 456-7890 Nume complet
[email protected]
Blockquote
Valoarea implicită margin
pentru ghilimelele este 1em 40px
, așa că o resetam la 0 0 1rem
ceva mai consistent cu alte elemente.
Un citat binecunoscut, conținut într-un element blockquote.
Elemente în linie
Elementul <abbr>
primește un stil de bază pentru a-l scoate în evidență printre textul paragrafului.
rezumat
cursor
Rezumatul implicit este text
, așa că îl resetam la pointer
pentru a transmite că elementul poate fi interacționat făcând clic pe el.
Câteva detalii
Mai multe informații despre detalii.
Chiar mai multe detalii
Iată și mai multe detalii despre detalii.
[hidden]
atribut HTML5
HTML5 adaugă un nou atribut global numit[hidden]
, care este stilat ca display: none
implicit. Împrumutând o idee de la PureCSS , îmbunătățim această valoare implicită, ajutând la [hidden] { display: none !important; }
prevenirea suprasolicitarii display
accidentale. Deși [hidden]
nu este suportat nativ de IE10, declarația explicită din CSS-ul nostru rezolvă această problemă.
<input type="text" hidden>
Incompatibilitate jQuery
[hidden]
nu este compatibil cu jQuery $(...).hide()
și $(...).show()
metodele. Prin urmare, în prezent nu susținem în mod special [hidden]
alte tehnici de gestionare display
a elementelor.
Pentru a comuta pur și simplu vizibilitatea unui element, adică display
nu este modificat și elementul poate afecta în continuare fluxul documentului, utilizați în schimb .invisible
clasa .