重新啟動
重新啟動,將特定於元素的 CSS 變更集合在單一檔案中,啟動 Bootstrap 以提供優雅、一致且簡單的基礎架構供您建置。
方法
重新啟動建立在 Normalize 的基礎上,僅使用元素選擇器為許多 HTML 元素提供相當主觀的樣式。其他樣式設定僅使用類別。例如,我們重新啟動一些 <table> 樣式以提供更簡單的基礎架構,並在稍後提供 .table、.table-bordered 等。
以下是我們在重新啟動中選擇覆寫內容的準則和理由
- 更新一些瀏覽器預設值,改用
rem取代em,以提供可調整大小的元件間距。 - 避免使用
margin-top。垂直外框可能會縮合,產生意外的結果。更重要的是,單一方向的margin是一個更簡單的心智模式。 - 為了在各種裝置尺寸間更輕鬆地調整大小,區塊元素應使用
rem作為margin。 - 將
font相關屬性的宣告降到最低,只要可能就使用inherit。
頁面預設值
<html> 和 <body> 元素已更新,以提供更好的全頁預設值。更具體來說
box-sizing全域性地設定在每個元素(包括*::before和*::after)上,為border-box。這可確保元素的宣告寬度絕不會因為內距或邊框而超過。<html>未宣告基本font-size,但假設為16px(瀏覽器預設值)。<body>套用font-size: 1rem,以便透過媒體查詢輕鬆調整回應式字型大小,同時尊重使用者偏好並確保更易於存取。<body>也設定全域font-family、line-height和text-align。這會在稍後由一些表單元素繼承,以避免字型不一致。- 為安全起見,
<body>已宣告background-color,預設為#fff。
原生字型堆疊
預設網頁字型(Helvetica Neue、Helvetica 和 Arial)已在 Bootstrap 4 中移除,並替換為「原生字型堆疊」,以在每個裝置和作業系統上最佳化文字呈現。進一步了解 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;
請注意,由於字型堆疊包含表情符號字型,許多常見的符號/字形 Unicode 字元會以多色象形文字呈現。它們的外觀會因瀏覽器/平台原生表情符號字型所使用的樣式而異,且不會受到任何 CSS color 樣式影響。
此 font-family 套用至 <body>,並在整個 Bootstrap 中自動全域繼承。若要切換全域 font-family,請更新 $font-family-base 並重新編譯 Bootstrap。
標題和段落
所有標題元素(例如 <h1>)和 <p> 都重設為移除其 margin-top。標題新增 margin-bottom: .5rem,段落新增 margin-bottom: 1rem,以利於間距。
| 標題 | 範例 |
|---|---|
<h1></h1>
|
h1. Bootstrap 標題 |
<h2></h2>
|
h2. Bootstrap 標題 |
<h3></h3>
|
h3. Bootstrap 標題 |
<h4></h4>
|
h4. Bootstrap 標題 |
<h5></h5>
|
h5. Bootstrap 標題 |
<h6></h6>
|
h6. Bootstrap 標題 |
清單
所有清單(<ul>、<ol> 和 <dl>)都移除其 margin-top,並新增 margin-bottom: 1rem。巢狀清單沒有 margin-bottom。
- 所有清單都移除其頂端外框
- 且其底端外框已正規化
- 巢狀清單沒有底端外框
- 這樣它們看起來會更均勻
- 特別是在後面還有更多清單項目時
- 左邊的內距也已經重設
- 這裡有一個順序清單
- 有幾個清單項目
- 它有相同的整體外觀
- 與前一個未排序清單相同
為了更簡單的樣式、清晰的層級關係和更好的間距,說明清單已更新 margin。<dd> 重設 margin-left 為 0 並新增 margin-bottom: .5rem。<dt> 為粗體。
- 說明清單
- 說明清單非常適合用來定義術語。
- 術語
- 術語的定義。
- 同一個術語的第二個定義。
- 另一個術語
- 這個另一個術語的定義。
預格式化文字
<pre> 元素已重設,以移除它的 margin-top 並使用 rem 單位作為它的 margin-bottom。
.example-element {
margin-bottom: 1rem;
}
表格
表格已略微調整,以設定 <caption> 的樣式、壓縮邊框,並確保整個 text-align 一致。有關邊框、內距的更多變更,請參閱 .table 類別。
| 表格標題 | 表格標題 | 表格標題 | 表格標題 |
|---|---|---|---|
| 表格儲存格 | 表格儲存格 | 表格儲存格 | 表格儲存格 |
| 表格儲存格 | 表格儲存格 | 表格儲存格 | 表格儲存格 |
| 表格儲存格 | 表格儲存格 | 表格儲存格 | 表格儲存格 |
表單
各種表單元素已重新啟動,以使用更簡單的基本樣式。以下是其中一些最顯著的變更
<fieldset>沒有邊框、內距或外距,因此它們可以用來輕鬆地包裝個別輸入或輸入群組。<legend>與欄位組一樣,也已重新設定樣式,以顯示為一種標題。<label>設定為display: inline-block,以允許套用margin。<input>、<select>、<textarea>和<button>大多已由 Normalize 處理,但 Reboot 也移除了它們的margin並設定line-height: inherit。<textarea>已修改為只能垂直調整大小,因為水平調整大小通常會「破壞」頁面配置。- 當
:not(:disabled)時,<button>和<input>按鈕元素的cursor: pointer。
這些變更,以及更多變更,如下所示。
按鈕指標
Reboot 包含 role="button" 的增強功能,可將預設游標變更為 pointer。將此屬性新增至元素,以協助指出元素具有互動性。此角色對於 <button> 元素並非必要,因為這些元素會取得自己的 cursor 變更。
<span role="button" tabindex="0">Non-button element button</span>雜項元素
地址
<address> 元素已更新,將瀏覽器預設 font-style 從 italic 重設為 normal。line-height 現在也已繼承,且已新增 margin-bottom: 1rem。<address> 用於呈現最近祖先(或整個作品)的聯絡資訊。透過以 <br> 結束行,來保留格式。
1355 Market St, Suite 900
San Francisco, CA 94103
P (123) 456-7890 全名
first.last@example.com
區塊引用
區塊引用的預設 margin 為 1em 40px,因此我們將其重設為 0 0 1rem,以取得與其他元素更一致的結果。
一個著名的引言,包含在區塊引用元素中。
內嵌元素
<abbr> 元素會接收基本樣式,以使其在段落文字中脫穎而出。
摘要
摘要的預設 cursor 為 text,因此我們將其重設為 pointer,以傳達可透過按一下元素與其互動。
一些詳細資料
有關詳細資料的更多資訊。
更多詳細資料
以下是有關詳細資料的更多詳細資料。
HTML5 [hidden] 屬性
HTML5 新增 一個名為 [hidden] 的新全域屬性,其預設樣式為 display: none。借用 PureCSS 的一個想法,我們透過建立 [hidden] { display: none !important; } 來改善此預設,以協助防止其 display 意外遭到覆寫。雖然 IE10 原生不支援 [hidden],但我們 CSS 中的明確宣告可解決此問題。
<input type="text" hidden>
jQuery 不相容性
[hidden] 與 jQuery 的 $(...).hide() 和 $(...).show() 方法不相容。因此,我們目前並未特別認可 [hidden] 優於其他用於管理元素 display 的技術。
若僅切換元素的可見性,表示其 display 沒有被修改,且元素仍會影響文件流動,請改用 .invisible 類別。