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