在 GitHub 上檢視

重新啟動

重新啟動,將特定於元素的 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-familyline-heighttext-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

  • 所有清單都移除其頂端外框
  • 且其底端外框已正規化
  • 巢狀清單沒有底端外框
    • 這樣它們看起來會更均勻
    • 特別是在後面還有更多清單項目時
  • 左邊的內距也已經重設
  1. 這裡有一個順序清單
  2. 有幾個清單項目
  3. 它有相同的整體外觀
  4. 與前一個未排序清單相同

為了更簡單的樣式、清晰的層級關係和更好的間距,說明清單已更新 margin<dd> 重設 margin-left0 並新增 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

這些變更,以及更多變更,如下所示。

範例圖例

100

按鈕指標

Reboot 包含 role="button" 的增強功能,可將預設游標變更為 pointer。將此屬性新增至元素,以協助指出元素具有互動性。此角色對於 <button> 元素並非必要,因為這些元素會取得自己的 cursor 變更。

非按鈕元素按鈕
<span role="button" tabindex="0">Non-button element button</span>

雜項元素

地址

<address> 元素已更新,將瀏覽器預設 font-styleitalic 重設為 normalline-height 現在也已繼承,且已新增 margin-bottom: 1rem<address> 用於呈現最近祖先(或整個作品)的聯絡資訊。透過以 <br> 結束行,來保留格式。

Twitter, Inc.
1355 Market St, Suite 900
San Francisco, CA 94103
P (123) 456-7890
全名
first.last@example.com

區塊引用

區塊引用的預設 margin1em 40px,因此我們將其重設為 0 0 1rem,以取得與其他元素更一致的結果。

一個著名的引言,包含在區塊引用元素中。

某位名人於 來源標題

內嵌元素

<abbr> 元素會接收基本樣式,以使其在段落文字中脫穎而出。

Nulla attr vitae elit libero, a pharetra augue.

摘要

摘要的預設 cursortext,因此我們將其重設為 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 類別