Bootstrap系列之Reboot


Reboot,一个文件中特定于元素的CSS更改的集合。Bootstrap提供了一个优雅的、一致的、简单的基线来进行构建。

1、Approach

Reboot建立在Normalize的基础上,它仅使用元素选择器提供了许多具有某种固执己见风格的HTML元素。额外的样式设计只在类中完成。例如,我们重新启动一些<table>样式以获得更简单的基线,然后提供.table.table- borderdered等等。

以下是我们在Reboot中选择覆盖哪些内容的指导方针和理由:

  • 更新一些浏览器默认值以使用rems而不是ems来处理可伸缩的组件间距。
  • 避免margin-top。垂直边距可能会崩溃,从而产生意想不到的结果。但更重要的是,单一的利润方向是一种更简单的心理模型。
  • 为了更容易跨设备大小缩放,块元素应该使用rems作为边界。
  • 尽可能少声明与字体相关的属性,尽可能使用inherit

2、Page defaults

<html><body>元素被更新以提供更好的页面范围默认值。更具体地说

  • ·box-sizing·全局设置在每个元素上,包括border-box *::before*::after。这将确保元素声明的宽度不会因填充或边框而超过。
  • <html>上没有声明基本font-size ,但假定为16px(浏览器默认值)。Font-size: 1rem应用于<body>,以便通过媒体查询方便地响应式类型缩放,同时尊重用户偏好,并确保更容易访问的方法。
  • <body>还设置了一个全局的font-familyline-heighttext-align。这是后来一些表单元素继承的,以防止字体不一致。
  • 为了安全起见,<body>声明了背景色,默认为#fff

3、Native font stack

默认的web字体(Helvetica Neue, Helvetica和Arial)已经在Bootstrap 4中被删除,取而代之的是一个本地字体堆栈,以在每个设备和操作系统上进行最佳的文本渲染。在Smashing杂志上阅读更多关于原生字体堆栈的文章。

$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符号/dingbat字符将被呈现为多种颜色的象形文字。它们的外观会有所不同,这取决于浏览器/平台原生表情符号字体的样式,而且它们不会受到任何CSS颜色样式的影响。

font-family应用于<body>,并在整个Bootstrap过程中自动全局继承。要切换全局字体,请更新$font-family-base并重新编译Bootstrap。

4、Headings and paragraphs

所有标题元素,例如<h1><p>,都被重置以删除它们的margin-top。标题的margin-bottom: .5rem,段落的 margin-bottom: 1rem,便于间距。

在这里插入图片描述

扫描二维码关注公众号,回复: 14223025 查看本文章

5、Lists

所有的列表----<ul><ol>,and <dl>----margin-top移除和添加margin-bottom: 1rem。列表嵌套是没有的margin-bottom。左侧padding也被重置。

为了简化样式、清晰的层次结构和更好的间距,描述列表更新了margin<dd>s重置margin-left为0并添加margin-bottom: .5rem< dt > s是粗体。

6、Preformatted text

<pre>元素被重置以删除其margin-top,并使用rem单位作为margin-bottom

.example-element {
    
    
  margin-bottom: 1rem;
}

7、Tables

表稍微调整样式<caption>s,折叠边框,并确保始终一致的文本对齐。在.table类中还提供了边框、填充等其他更改。

在这里插入图片描述

8、Forms

为了更简单的基本样式,已经重新启动了各种表单元素。以下是一些最显著的变化

  • <fieldset>没有边框、填充或边距,因此可以方便地将它们用作单个输入或一组输入的包装器。
  • <fieldset>一样,<legend>s也被重新设计为显示为各种标题。
  • <label>设置为display: inline-block以允许应用空白。
  • <input>s, <select>s, <textarea>s,和<button>大多由Normalize处理,但Reboot删除它们的边距并设置line-height: inherit
  • <textarea>被修改为只能垂直调整大小,因为水平调整通常会打破页面布局。
  • <button>s和<input> button元素在:not(:disabled)时具有cursor: pointer

下面演示了这些更改以及更多更改。

在这里插入图片描述

9、Pointers on buttons

重新启动包括对role="button"的增强,以将默认光标更改为指针。将此属性添加到元素中,以帮助表明元素是交互式的。对于<button>元素来说,这个角色不是必需的,因为这些元素有自己的游标更改。

<span role="button" tabindex="0">Non-button element button</span>

在这里插入图片描述

10、Misc elements

10.1、Address

<address>元素被更新以将浏览器的默认字体样式从斜体重置为正常。Line-height现在也被继承,并且添加了margin-bottom: 1rem<address>用于提供最近的祖先(或整个工作体)的联系信息。通过使用<br>结束行来保持格式。

在这里插入图片描述

10.2、Blockquote

blockquotes的默认边界是1em 40px,所以我们将其重置为0 0 1rem,以便与其他元素保持一致。

在这里插入图片描述

10.3、Inline elements

<abbr>元素接收基本样式,使其在段落文本中突出。

在这里插入图片描述

10.4、Summary

Summary上的默认光标是text,因此我们将其重置为pointer,以表示可以通过单击该元素进行交互。

在这里插入图片描述

11、HTML5 [hidden] attribute

HTML5添加了一个新的全局属性[hidden],默认样式为display: none。借鉴了PureCSS的一个想法,我们通过使[hidden] {display: none !}来帮助防止它的显示被意外覆盖。虽然[hidden]不是IE10原生支持的,但我们的CSS中的显式声明解决了这个问题。

<input type="text" hidden>

jQuery的不兼容性

[hidden]不兼容jQuery的$(…).hide()$(…).show()方法。因此,我们目前并不特别认可[hidden]技术优于其他管理元素显示的技术。

若要仅切换元素的可见性,即元素的显示不会被修改,且元素仍然可以影响文档的流,请使用.invisible类。


后记

如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_62277266/article/details/124974472
今日推荐