Bootstrap 简明教程
Bootstrap - Reboot
本章将讨论 Bootstrap 重置。重置用于重置特定元素的所有样式。
Approach
重置样式使用仅元素选择器来对 HTML 元素应用有主见的样式。额外的样式仅使用类来完成。例如,重置一些 <table> 样式,然后包括类 .table 、 .table-bordered 等。
-
用 rems 替换默认 ems ,以在浏览器中获得可扩展的组件间距。
-
跳过 margin-top 。垂直边距意外折叠。但是,具有单一方向的 margin 是一种更简单的概念。
-
块元素应该使用 rems 来获得边距,以使其更容易跨越设备尺寸。
-
尽可能地使用 inherit 并限制 font 相关的属性声明。
这使你能够实时自定义,但这取决于你:
<body style="--bs-body-color: #333;">
<!-- ... -->
</body>
Page defaults
重置用于 a 元素 <HTML> 和 <body> 元素,以提供更好的全页面默认值。更多详细信息如下。
-
所有元素都具有全局 box-sizing ,包括 ::before 、 ::after 至 border-box 。由于此原因,填充和边框不会超出元素的声明宽度。
-
用于 <body> 的全局样式包含 font-family 、 font-weight 、 line-height 和 color 。为了避免字体差异,一些表单元素随后将继承它。
-
由于安全原因, <body> 背景颜色默认为 #fff 。
Native font stack
-
重置用于 Bootstrap 使用 native font stack 或 system font stack ,以便在每个设备和操作系统上实现最佳文本渲染。
-
这些系统字体专为具有改进的屏幕渲染、可变字体支持等功能的现代设备而设计。
-
详细了解 native font stacks 。
$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;
-
字体堆栈具有 emoji 字体,因此常见符号、dingbat Unicode 字符将显示为彩色象形图。它们的显示会随着浏览器的原生 emoji 字体或平台而有所不同,并且不受 CSS 颜色样式的影响。
-
font-family 应用于 <body> ,并自动在 Bootstrap 中全局继承。更新 $font-family-base 并重新编译 Bootstrap 以获得全局 font-family 更改。
Headings
Bootstrap 重置标题用于移除 HTML 标题标签提供的默认边距,即 * margin-bottom: .5rem* 并收紧 line-height 。
--bs-heading-color CSS 变量允许您更改默认的 heading-color 。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<p>This is the first paragraph.</p>
<p>This is the second paragraph.</p>
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<p><a href="#">Visit Tutorialspoint..</a></p>
</body>
</html>
作为 Bootstrap v5.3.x,链接颜色使用 rgba() 和新的 -rgb CSS 变量设置。这允许轻松自定义链接颜色不透明度。链接颜色不透明度可以使用 CSS 变量 --bs-link-opacity 更改,如下例所示。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<p><a href="#" style="--bs-link-opacity: .7">Visit Tutorialspoint</a></p>
</body>
</html>
Bootstrap reboot 使用更具体的选取器定位占位符链接(那些没有 href 的链接)。它们的 color 和 text-decoration 将重置为它们的默认值。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<p><a>Visit Tutorialspoint</a></p>
</body>
</html>
Horizontal rules
Reboot 简化了 <hr> 元素。默认情况下, <hr> 元素使用 border-top 和 opacity: .25 进行样式化,并自动从父级颜色继承其 border-color 。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<h2 class="text-center">Horizontal rules</h2>
<div class="container">
<hr>
<div class="text-primary">
<hr>
</div>
<hr class="border border-warning border-3 opacity-75">
<hr class="border border-info border-4 opacity-100">
</div>
</body>
</html>
Lists
-
Bootstrap reboot 已移除 margin-top 并设置列表的 margin-bottom: 1rem 。
-
列表元素 <ul> 、 <ol> 和 <dl> 的 margin-top 已被移除并设置了 margin-bottom: 1rem 。
描述列表改进了 margins ,以便于样式化、清理层次结构,并将 <dd>*s reset *margin-left 设置为 0 ,并添加 margin-bottom: .5rem 。 <dt>*s are *bolded 。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
The <code><section></code> element should be enclosed within an inline container.
</div>
</body>
</html>
Code blocks
Bootstrap 5 Reboot 代码块用于将代码置于 <pre> 标签内。建议在代码中转义尖括号以进行正确渲染。 <pre> 元素被重置以移除其 margin-top 。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<pre><code>Tutorialspoint
This is an example of code block.
</code></pre>
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<var>a</var><var>x</var> + <var>b</var><var>y</var> = <var>c</var>
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
To save the changes, press <kbd><kbd>Ctrl</kbd> + <kbd>s</kbd></kbd><br>
To paste the selected item, press <kbd><kbd>Ctrl</kbd> + <kbd>v</kbd></kbd>
</div>
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<samp>This text should be considered as an example output generated by a computer program.</samp>
</div>
</body>
</html>
Tables
对表格进行修改以获得样式 <caption>*s, border collapse, and consistent *text-align 。 .table 类对边框和填充进行进一步修改。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<table>
<caption>
This is a caption of table to describe the contents.
</caption>
<thead>
<tr>
<th>Employee Id</th>
<th>Employee Name</th>
<th>Employee Role</th>
</tr>
</thead>
<tbody>
<tr>
<td>10</td>
<td>Jhon</td>
<td>Software Devloper</td>
</tr>
<tr>
<td>20</td>
<td>Mayra</td>
<td>Tester</td>
</tr>
<tr>
<td>30</td>
<td>Rocky</td>
<td>Data Analyst</td>
</tr>
</tbody>
</table>
</body>
</html>
Forms
表单元素已针对新的基本样式进行了简化。最显着的更改如下所示:
-
<fieldset> 可以轻松用作单个输入或一组输入的包装器,因为它们没有边框、填充或边距。
-
<legend> 已被重新设计为作为标题显示。
-
为边距保留的 <label>*s are set to *display: inline-block 。
-
Normalise主要负责 <input>*s, *<select>*s, *<textarea>*s, and *<button>*s, while reboot also removes their margin and sets *line-height: inherit 的样式。
-
*<textarea>*只允许垂直调整大小,以防止页面布局“中断”。
-
未禁用时, <button>*s and *<input> 按钮具有 cursor: pointer 。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<form class="bd-example">
<fieldset>
<legend>Form</legend>
<p>
<label for="input">Name</label>
<input type="text" id="inputName" placeholder="Enter your name...">
</p>
<p>
<label for="email">Email id</label>
<input type="email" id="emailId" placeholder="Tutorialspoint@example.com">
</p>
<p>
<label for="tel">Mobile No:</label>
<input type="tel" id="Mob">
</p>
<p>
<label for="url">Age</label>
<input type="number" id="age">
</p>
<p>
<label for="number">Number</label>
<input type="number" id="number">
</p>
<p>
<label for="search">Search Here</label>
<input type="search" id="searchHere">
</p>
<p>
<label for="range">Range</label>
<input type="range" id="rangeExample" min="0" max="10">
</p>
<p>
<label for="file">Upload file</label>
<input type="file" id="fileinput">
</p>
<p>
<label for="select">Languages</label>
<select id="select">
<option value="">select...</option>
<optgroup label="Group 1">
<option value="">HTML</option>
<option value="">CSS</option>
<option value="">Bootstrap</option>
</optgroup>
<optgroup label="Group 2">
<option value="">C</option>
<option value="">C++</option>
<option value="">Java</option>
</optgroup>
</select>
</p>
<p>
<h6>Selects the languages</h6>
<label>
<input type="checkbox" value="">
HTML
</label>
<br>
<label>
<input type="checkbox" value="">
CSS
</label>
<br>
<label>
<input type="checkbox" value="">
Javascript
</label>
</p>
<p>
<h6>Select your gender</h6>
<label>
<input type="radio" name="firstOption" id="radios1" value="option1" checked>
Female
</label>
<br>
<label>
<input type="radio" name="secondOption" id="radios2" value="option2">
Male
</label>
<br>
<label>
<input type="radio" name="thirdOption" id="radios3" value="option3" disabled>
Others
</label>
</p>
<p>
<label for="textarea">Feedback</label>
<textarea id="feedbackTextarea" rows="4"></textarea>
</p>
<p>
<label for="date">Birth date</label>
<input type="date" id="birthDate">
</p>
<p>
<label for="time">Time</label>
<input type="time" id="timeInput">
</p>
<p>
<label for="password">Enter Password</label>
<input type="password" id="password">
</p>
<p>
<label for="datetime-local">Local Datetime</label>
<input type="datetime-local" id="localDatetime">
</p>
<p>
<label for="week">Select week</label>
<input type="week" id="weekInput">
</p>
<p>
<label for="month">Select month</label>
<input type="month" id="monthInput">
</p>
<p>
<label for="color">Selet color</label>
<input type="color" id="selectColor">
</p>
<p>
<label for="output">Output: </label>
<output name="result" id="output">Tutorialspoint</output>
</p>
<p>
<label>Buttons</label>
<button type="submit">Submit</button>
<input type="reset" value="Reset">
<input type="button" value="Button">
</p>
<p>
<label>Disabled Buttons</label>
<button type="submit" disabled>Submit</button>
<input type="reset" value="Reset" disabled>
<input type="button" value="Button" disabled>
</p>
</fieldset>
</form>
</body>
</html>
Pointers on buttons
-
Reboot提供一个 role="button" ,它把光标更改为指向光标。使用此属性来指示交互元素。
-
<button> 元素不需要,因为它们自己的光标会发生变化。
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<span role="button" tabindex="0">Non-button element</span>
</div>
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<address>
<strong>ABC Corporation</strong><br>
505 sansui street,<br>
Eillis, CA 0178<br>
<abbr title="Phone">P:</abbr> (212) 357-0194
</address>
<address>
<a href="mailto:tutorialspoint@example.com">tutorialspoint@example.com</a>
</address>
</div>
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<blockquote class="blockquote">
<p>Blockquote removes default margin of HTML blockquote tag element.</p>
</blockquote>
<p>Someone well-known in <cite title="Source Title">Source Title</cite>.</p>
</div>
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
The <abbr title="Cascading Style Sheet">CSS</abbr> is a style sheet language.
</body>
</html>
Example
您可以使用*编辑和运行*选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Reboot</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<details>
<summary>Bootstrap Colors</summary>
<p>Bootstrap colors used to give the colors to the text or the background.</p>
</details>
<details open>
<summary>Bootstrap Dropdown</summary>
<p>Dropdown menus are toggleable, contextual menus that can be enabled to show links in a list format.</p>
</details>
</div>
</body>
</html>
HTML5 [hidden] attribute
-
golbal attribute [hidden] 在HTML5中的默认样式为 display: none 。
-
为了改善默认值(display:none),reboot通过设置 [hidden] {display: none !important;} 来帮助防止意外覆盖其显示。
<input type="text" hidden>
若要仅切换 visibility 元素,意味着其显示不会被修改,并且其元素仍会影响文档流程,则使用 .invisible 类。