• B* 登录了本站
  • m******n 加入了本站
  • B* 登录了本站
  • B* 登录了本站
  • B* 登录了本站
  • B* 登录了本站
  • B* 登录了本站
  • B* 登录了本站
  • B* 登录了本站
  • B* 登录了本站
bootstrap4和bootstrap3等之前版本相比有哪些变动或新特性

bootstrap4和bootstrap3等之前版本相比有哪些变动或新特性

浏览器支持

  • 放弃IE8,IE9和iOS 6的支持。 v4现在只有IE10 +和iOS 7+。 对于需要其中任何一个的网站,请使用v3。
  • 增加了对Android v5.0 Lollipop的浏览器和WebView的官方支持。 Android浏览器和WebView的早期版本仅保留非正式支持。

全局变化

  • Flexbox默认启用。 一般来说,这意味着要从浮筒和更多的组件上移开。
  • 我们的源CSS文件从Less 切换到 Sass
  • px 切换到 rem 作为我们的主要CSS单元, 但像素仍然用于媒体查询和网格行为,因为设备视口不受字体大小的影响。
  • 全局字体大小从14px 增加到 16px
  • 修改网格层以添加第五个选项 (解决576px 及更低的较小设备), 并从这些类中移除 -xs 中缀。例如:.col-6.col-sm-4.col-md-3
  • 用可配置选项通过SCSS变量替换单独的可选主题(例如,$enable-gradients: true)。
  • 修改系统以使用一系列npm脚本代替Grunt。 查看所有脚本的 package.json,或者我们的项目自述文件以了解本地开发需求。
  • 不再支持Bootstrap的无响应使用。
  • 放弃了在线Customizer,转而使用更广泛的安装文档和定制版本。
  • 为常见的CSS属性 – 值对和边距/填充间距快捷方式添加了许多新的 实用程序类。

栅格系统

  • 移至flexbox。
    • 增加了对网格mixins和预定义类中的flexbox的支持。
    • 作为flexbox的一部分,包括对垂直和水平对齐类的支持。
  • 更新了网格类名称和新的网格层。
    • 768px以下添加了一个新的sm 用于更精细的控制。 我们现在有 xs, sm, md, lg, 和 xl。 这也意味着每一层都被提升了一个层次 (所以v3中的 .col-md-6 现在是v4中的 .col-lg-6)。
    • xs 网格类已被修改为不需要中缀来更准确地表示他们开始 min-width: 0 而不是设置像素值。 而不是.col-xs-6, 它现在是 .col-6。 所有其他网格层都需要中缀 (例如: sm)。
  • 更新了网格大小,混合和变量。
    • 网格间距现在有一个Sass地图,因此您可以在每个断点处指定特定的间距宽度。
    • 更新的网格混合使用 make-col-ready 混合 make-col 设置 flexmax-width 来设置单个列大小的弯曲和zui大宽度。
    • 将网格系统媒体查询断点和容器宽度更改为新的网格层,并确保列在其zui大宽度处可以被12整除。
    • 网格断点和容器宽度现在通过Sass地图 ($grid-breakpoints$container-max-widths) 来处理,而不是一些单独的变量。这些将完全替换 @screen-* 变量 ,并允许您完全自定义网格层。
    • 媒体查询也发生了变化。 我们现在只有@include media-breakpoint-up/down/only, 而不是每次重复使用相同值的媒体查询声明。现在,您可以不写 @media (min-width: @screen-sm-min) { ... }, 而可以编写 @include media-breakpoint-up(sm) { ... }

组件

  • 放置面板,缩略图 用于新的全面组件, 卡片
  • 丢弃了Glyphicons图标字体。 如果你需要图标,一些选项是:
  • 删除了Affix jQuery插件。
    • 我们建议使用 position: sticky 代替。有关详细信息和特定的polyfill建议,请参阅 HTML5请参阅条目。 一个建议是使用@supports 规则来实现它 (例如, @supports (position: sticky) { ... })/
    • 如果您使用Affix来应用其他非位置样式, non-position 样式, 那么polyfills可能不支持您的用例。 这种用途的一个选择是第三方 ScrollPos-Styler 库.
  • 丢弃了pager 组件, 因为它本质上是微小定制的按钮。
  • 重构几乎所有的组件 以使用更多的非嵌套类选择器而不是超特定的子选择器。

按钮组

此列表突出显示了v3.x.x和v4.0.0之间组件的关键更改。

重构

Bootstrap 4的新功能是重构, 这是一种新的样式表,它基于我们自己的一些自定义的重置样式进行规范化。 出现在这个文件中的选择器只使用元素 – 这里没有类。 这将我们的重置样式与我们的组件样式隔离开来, 以实现更模块化的方法 其中zui重要的一些重置包括 box-sizing: border-box 的更改, 从许多元素上的 emrem 单位, 以及许多表单元素重置。

排版

  • 将所有 .text- utilities 移至 _utilities.scss 文件。
  • Dropped .page-header 除了边框之外, 其所有样式都可以通过实用工具应用。
  • .dl-horizontal 已被删除。 相反, 在<dl>上使用 .row, 并在其<dt><dd> 子级上使用网格列类(或mixins)。
  • 自定义 <blockquote> 样式已移至 classes—.blockquote.blockquote-reverse 修饰符。
  • .list-inline 现在要求其子项列表项具有应用于它们的新的 .list-inline-item 类。

图片

  • 修改 .img-responsive.img-fluid.
  • 修改 .img-rounded.rounded
  • 修改 .img-circle.rounded-circle

表格

  • 几乎所有 > 选择器的实例都被删除, 这意味着css在会自动从父母继承样式。 这极大地简化了我们的选择器和潜在的定制。
  • 响应表不再需要包装元素。 相反,只需将 .table-responsive 类放在 <table>上即可。
  • .table-condensed 重命名为 .table-sm 以保持一致性。
  • 添加了一个新的 .table-inverse 属性。
  • 增加了表头修饰符:.thead-default.thead-inverse
  • 将上下文类重命名为具有 .table--前缀。 因此 .active, .success, .warning.danger.info.table-success, .table-warning, .table-danger.table-info转化为.table-active

表单

  • 移动元素重置为_reboot.scss 文件。
  • .control-label 重命名为 .col-form-label
  • .input-lg.input-sm 重命名为 .form-control-lg.form-control-sm
  • 为了简单起见,丢弃了 .form-group-* 类。 现在使用 .form-control-* 类。
  • 删除 .help-block 并用 .form-text 替换为块级帮助文本。 对于内联帮助文本和其他灵活选项, 请使用实用程序类 ,如.text-muted
  • 丢弃 .radio-inline.checkbox-inline
  • .checkbox.radio 合并为 .form-check 和各种 .form-check-* 类.
  • 水平形式修改:
    • 放弃了 .form-horizontal 类的要求。
    • .form-group 不再通过mixin从 .row 中应用样式, 所以 .row 现在需要用于水平网格布局 (例如, <div class="form-group row">).
    • 使用 .col-form-label 添加新的 .form-control类来垂直居中标注。
    • 使用网格类为紧凑表单布局添加新的 .form-row (将 .row 替换为 .form-row 并继续使用)。
  • 添加了自定义表单支持 (用于 复选框, 音频, 选择框, 和 选择文件 输入框)。
  • 使用CSS的HTML5表单验证替换 .has-error, .has-warning, 和 .has-success:invalid:valid 伪类。
  • .form-control-static 重命名为 .form-control-plaintext

按钮

  • .btn-default 重命名为 .btn-secondary
  • 放弃 .btn-xs 这个类, 因为 .btn-sm 的比例要比v3小得多。
  • stateful button button.js 插件的状态按钮功能删除。这包括$().button(string)$().button('reset') 方法。我们建议使用一小部分自定义JavaScript代替, 这样做的好处是可以按照您希望的方式进行操作。
    • 请注意,插件的其他功能(按钮复选框,按钮收音频,单切换按钮)已保留在v4中。

按钮组

  • 用flexbox重写组件。
  • 删除了 .btn-group-justified。 作为替换,你可以使用 <div class="btn-group d-flex" role="group"></div> 作为包含.w-100
  • 完全放弃了 .btn-group-xs 类, 并删除了 .btn-xs
  • 删除按钮工具栏中按钮组之间的显式间距; 现在使其它类。
  • 改进了与其他组件一起使用的文档。

下拉菜单

  • 从父选择器切换到所有组件,修饰符等的单数类。
  • 简化的下拉样式不再随附在下拉菜单上的朝上或朝下箭头方向。
  • 下拉菜单现在可以用 <div>s 或 <ul>建立。
  • 重建下拉式样和标记,为基于 <a><button> 的下拉项目提供简单的内置支持。
  • .divider 重命名为 .dropdown-divider
  • 下拉项目现在需要 .dropdown-item中建立。
  • 下拉式切换不再需要明确的 <span class="caret"></span>; 这现在通过CSS ::after on .dropdown-toggle自动提供。

栅格系统

  • sm增加了一个新的 576px 网格断点, 这意味着现在有五个总层 (xs, sm, md, lg, 和 xl)。
  • 更简单的网格类将 .col-{断点}-{修饰符}-{大小} 的响应网格修饰符类重命名为。 .{修饰符}-{断点}-{大小}
  • 为新的弹性布局提供 order 类。例如,您可以使用 .col-8.push-4.col-4.pull-8, 而不是 .col-8.order-2.col-4.order-1
  • 为网格系统和组件添加了flexbox实用程序类。

列表组

  • 用flexbox重写组件。
  • 用明确的类,a.list-group-item 替换 .list-group-item-action, 以便为列表组项的链接和按钮版本进行样式设置。
  • 添加了 .list-group-flush 类以用于卡片。

Modal

  • 用flexbox重写组件。
  • 鉴于移动到flexbox,标题中排除图标的对齐可能会被破坏,因为我们不再使用浮动。 浮动内容是第一位的,但对于不再是这种情况的Flexbox。 更新你的解雇图标来模式标题来解决。
  • 选项 remote (可用于自动加载和注入外部内容到模式中) 和相应的 loaded.bs.modal 事件被删除。我们建议使用客户端模板或数据绑定框架, 或者自己调用 jQuery.load

导航

  • 用flexbox重写组件。
  • 通过非嵌套类删除几乎所有 > 选择器以实现更简单的样式。
  • 我们对.nav, .nav-item, 和 .nav-link使用单独的类, 而不是像.nav > li > a这样的HTML特定选择器,这使得您的HTML更加灵活,同时增加了可扩展性。

导航栏

导航栏已经在flexbox中完全重写,改进了对齐,响应和定制支持。

  • 响应式导航栏行为现在通过所需的.navbar-expand-{断点} 应用于.navbar 类, 您可以在其中选择折叠导航栏的位置。 以前这是一个较少变量的修改重新编译。
  • .navbar-default 现在是 .navbar-light, 但 .navbar-dark 保持不变。 其中一个是每个导航栏上都需要的。 但是,这些类不再设置 background-color; 相反,它们基本上只影响 color
  • Navbar现在需要某种背景声明。 从我们的背景实用程序(.bg-*)中选择, 或者使用上面的轻/反类来设置您自己的 疯狂自定义
  • 鉴于flexbox的风格,navbars现在可以使用flexbox工具来轻松对齐选项。
  • .navbar-toggle 现在是 .navbar-toggler ,具有不同的样式和内部标记 (不再有 <span>
  • 完全抛弃了 .navbar-form 这个类. 它不再是必要的; 相反,只需使用 .form-inline 并根据需要应用实用程序。
  • 默认情况下Navbar不再包含 margin-bottomborder-radius必要时使用实用程序。
  • 所有以导航栏为特色的示例已更新为包含新标记。

分页

  • 用flexbox重写组件。
  • 显式类 (.page-item, .page-link) 现在需要在 .pagination的后代中使用。
  • 完全丢弃了.pager组件 ,因为它不过是自定义轮廓按钮。.

面包屑

  • .breadcrumb的后代现在需要添加类.breadcrumb-item

标签和徽章

  • .label 重命名为 .badge ,从而<label> 元素消除歧义。
  • 放弃 .badge 组件, 因为它几乎与标签相同。将 .badge-pill 修饰符与标签组件一起使用,以代替该圆形外观。
  • 徽章不再自动在列表组和其他组件中自动浮动。 实用程序类现在需要。
  • .badge-default 已被删除,并添加了 .badge-secondary 以匹配别处使用的组件修饰符类。

面板,缩略图

完全丢弃新卡组件。

面板

  • .panel 改为 .card,现在用flexbox构建。
  • .panel-default 被删除并且没有替换。
  • .panel-group 被移除并且没有替换。 .card-group 不是替代品,它是不同的。
  • .panel-heading 改为了 .card-header
  • .panel-title 改为了 .card-title。 您可能还想使用 heading elements or classes (例如: <h3>, .h3) 或粗体元素或类 (例如: <strong>, <b>, .font-weight-bold)。 请注意, .card-title标题虽然具有相同的名称,但产生与.panel-title标题不同的外观。
  • .panel-body 改为 .card-body
  • .panel-footer 改为 .card-footer
  • .panel-primary, .panel-success, .panel-info, .panel-warning, 和 .panel-danger 已被放弃 .bg-, .text-, 和 .border 被我们列为公共样式 $theme-colors Sass 地图.

进度条

  • 使用.bg-*实用程序替换 .progress-bar-*类 。 例如, class="progress-bar progress-bar-danger" 变为 class="progress-bar bg-danger".

轮放组件

  • 彻底改变了整个组件以简化设计和样式。 我们有更少的款式可供您覆盖,新指标和新图标。
  • 所有的CSS都被取消嵌套和重命名,确保每个类的前缀都是 .carousel-
    • 对于轮放组件, .next, .prev, .left, 和 .right 现在改成 .carousel-item-next, .carousel-item-prev, .carousel-item-left, 和 .carousel-item-right
    • .item 现在改成 .carousel-item.
    • 对于 prev/next 控件, .carousel-control.right.carousel-control.left 改成了 .carousel-control-next.carousel-control-prev 这意味着他们不再需要特定的基类。
  • 删除所有响应式样式,并根据需要推迟使用实用工具(例如,在某些视口上显示字幕)和自定义样式。
  • 删除图像覆盖轮放组件项目中的图像,推迟到实用程序。
  • 调整了Carousel示例以包含新的标记和样式。

仪表盘

  • 删除了对样式化嵌套表的支持。 所有表格样式现在都在v4中继承,用于更简单的选择器。
  • 添加了反向表格变体。

公用样式

  • 显示,隐藏等等:
    • 使显示实用程序响应 (例如, .d-noned-{sm,md,lg,xl}-none)。
    • 删除了新的显示实用程序的大部分 .hidden-* 实用程序。 display utilities。而不是 .hidden-sm-up, 请使用 .d-sm-none。 将 .hidden-print 实用程序重命名为使用显示实用程序命名方案。在此页面的“响应式应用程序”部分下提供更多信息。
    • 添加 .float-{sm,md,lg,xl}-{left,right,none} 类, 为响应浮动和删除 .pull-left.pull-right 因为它们是多余的 .float-left.float-right
  • 类型:
    • 为我们的文本对齐类添加了响应式变体 .text-{sm,md,lg,xl}-{left,center,right}

提供前缀混合

Bootstrap 3的 vendor prefix mixins, 在v3.2.0中已弃用, 已在Bootstrap 4中删除。由于我们使用 Autoprefixer, 因此不再需要它们。

删除了以下mixin: animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-timing-function, backface-visibility, box-sizing, content-columns, hyphens, opacity, perspective, perspective-origin, rotate, rotateX, rotateY, scale, scaleX, scaleY, skew, transform-origin, transition-delay, transition-duration, transition-property, transition-timing-function, transition-transform, translate, translate3d, user-select

文档

我们的文档也获得了全面升级。 这是zui重要的一点:

  • 我们仍在使用Jekyll,但是我们有插件:
    • bugify.rb用于有效地列出 浏览器错误 页面上的条目。
    • example.rb 是默认 highlight.rb 插件的自定义分支,允许更简单的示例代码处理。
    • callout.rb 是一个类似的自定义分支,但为我们的特殊文档标注而设计。
    • markdown-block.rb 用于在表格中呈现HTML元素内的Markdown片段。
    • jekyll-toc 用于生成我们的目录。
  • 所有文档内容都已在Markdown(而不是HTML)中重写,以便于编辑。
  • 页面已被重新组织,以获得更简单的内容和更平易近人的层次结构。
  • 我们从常规CSS转移到SCSS,充分利用Bootstrap的变量,mixins等等。

响应式实用程序

所有 @screen- 变量已在v4.0.0中删除。 改为使用 media-breakpoint-up()media-breakpoint-down(), 或 media-breakpoint-only()$grid-breakpoints

我们的响应式实用程序类在很大程度上已被删除,以支持显式 display 实用程序。

  • 其中 .hidden.show 类已被删除,因为它们与jQuery的 $(...).hide()$(...).show()方法冲突。相反,尝试切换 [hidden] 属性或使用内联样式,style="display: none;"style="display: block;"
  • 除了已重命名的打印实用程序外,所有 .hidden- 类都被删除。
    • 从v3中删除: .hidden-xs .hidden-sm .hidden-md .hidden-lg .visible-xs-block.visible-xs-inline .visible-xs-inline-block .visible-sm-block .visible-sm-inline .visible-sm-inline-block .visible-md-block .visible-md-inline .visible-md-inline-block .visible-lg-block .visible-lg-inline .visible-lg-inline-block
    • 从v4 alphas中删除: .hidden-xs-up .hidden-xs-down .hidden-sm-up .hidden-sm-down .hidden-md-up .hidden-md-down .hidden-lg-up .hidden-lg-down
  • 打印实用程序不再以此开头.hidden-.visible-, 但是 .d-print-
    • 原来的类: .visible-print-block, .visible-print-inline, .visible-print-inline-block, .hidden-print
    • 新的类 : .d-print-block, .d-print-inline, .d-print-inline-block, .d-print-none

而不是使用明确的 .visible-* 类, 而是通过将该元素隐藏在该屏幕尺寸上来使元素可见。您可以将一个 .d-*-none 类与一个 .d-*-block 类组合在一起,仅在给定的屏幕大小间隔内显示一个元素 (例如: .d-none.d-md-block.d-xl-none 仅在中型和大型设备上显示元素)。

请注意,对v4中的网格断点的更改意味着您需要增大一个断点才能达到相同的结果。 新的响应式实用程序类别不会尝试适应不常见的情况,即元素的可见性无法表示为视口大小的单个连续范围; 您将需要在这种情况下使用自定义CSS。

本文来自Introduction

声明:本站所有资源均为互联网收集而来和网友投稿,仅供学习交流使用,如资源适合请购买正版体验更完善的服务;如有侵犯到您的权益,可联系我们删除,给您带来的不便我们深表歉意。版权声明点此了解!
本站分享的WordPress主题/插件均遵循 GPLv2 许可协议(开源软件)。相关介绍资料仅供参考,实际版本可能因版本迭代或开发者调整而产生变化。涉及第三方原创图像、设计模板、远程服务等内容的使用,需获得作者授权。
0

评论0

请先

站点公告

通过其他平台(微信等)有购买过的用户,请注册的时候使用对应的来源平台的用户名,将会在24小时内随机发送1~9宝库币(站内余额,可直接用于购买站内资源)。
没有账号?注册  忘记密码?