css Bootstrap(4)能否与角形材料(2)集成在沿着?

nhaq1z21  于 2023-03-05  发布在  Bootstrap
关注(0)|答案(4)|浏览(132)

我想使用Angular Material 2库,因为它的组件(不断增长的列表)。但我习惯于引导,它的好东西,如响应实用程序和轻量级UI的典型的事情。通过引导我主要是指它的CSS部分,我几乎从来不需要它的JS功能。
例如,在材质库中,列表组几乎没有样式,而Bootstrap通过其css提供了样式。
我记得阅读到过这样的文章:把它们结合起来并不是一个好主意,主要是因为它们在全球应用范围内的风格会发生冲突。我找不到那个来源,我很好奇--当前的版本是这样吗?如果是这样,究竟是什么冲突,如何解决?

of1yzvn4

of1yzvn41#

由于Bootstrap是模块化的,因此一种替代方法是使用角形材质,然后仅从Bootstrap中选取真正需要的零件。

注意:无论您要导入什么,都应该先安装 Bootstrap :

npm install bootstrap --save

然后将所需的sass文件导入到全局style.scss中:

// Imports functions, variables, and mixins that are needed by other Bootstrap files
 @import "~bootstrap/scss/functions";
 @import "~bootstrap/scss/variables";
 @import "~bootstrap/scss/mixins";

例如,您可能希望使用Bootstrap Reboot,以便使所有浏览器更一致地呈现元素并遵循Web标准。
然后,您只需导入:

// Import Roboot
@import "~bootstrap/scss/reboot";

您可能也想使用Bootstrap Grid System,在这种情况下,您可以进一步添加:

@import "~bootstrap/scss/grid"; // add the grid

所以你可以在你的html模板中使用它:

<div class="container">
  <div class="row">
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
  </div>
</div>

您可能还想使用Bootstrap Utilities,在这种情况下,还要添加:

@import "~bootstrap/scss/utilities"; // add css utilities

我的答案是基于什么解释在这里的细节:https://www.amadousall.com/the-good-parts-of-bootstrap-4-you-are-missing-in-your-angular-material-projects/

u1ehiz5o

u1ehiz5o2#

Angular Material 2是一个仍在积极开发中的新库,因此您不应期望其中包含许多花哨的nice to have特性,但从长远来看,在您的Angular 应用中使用Material 2会有很多好处。

组件开发套件

在上一个版本中,Material 2团队引入了@angular/cdk,它是Material 2的核心,也给开发者提供了一个编写他们自己的第三方组件的好地方。目前还没有太多关于@angular/cdk的文档,但是你可以跟踪https://github.com/angular/material2/issues/2789的问题,以保持更新。

React灵敏的上帝

Material 2中没有内置的功能可以让你快速响应。在这方面你必须使用@angular/flex-layout,它与Material 2是完全分开的--基本上它是一个很好的基于Flexbox CSS的抽象。使用它你不必自己编写一大堆快速响应的css mediaQueries。

浏览器支持

Material 2:IE11+
1个内存9个内存1个IE10+
1个内存10个内存1个IE8+

Bootstrap +材料?

您可以自行决定是否要在应用中合并这两个框架。如果要合并,请检查捆绑包大小,以确保它不会膨胀。

kuuvgm7e

kuuvgm7e3#

虽然孔切维奇的回答是正确的,但我认为我们还应该补充以下几点:

  • Angular 材质隐式升级/降级DOM元素

而Bootstrap则不是。这意味着在Bootstrap中,您将获得
你看,在Angular Material中,一些元素是自动渲染的。所以,我真的不知道你怎么能把两者结合起来,即使你想。添加Angular的视图封装在混合中,事情变得更加混乱。

  • 我认为唯一可以合作的地方就是网格。你

我可以用Bootstrap来做网格,用Angular Material来做其他的,但是用Angular Flex Layout(正如Kunsevic已经提到的)你就不需要了。这需要一个小的学习曲线,但是如果你用Angular,这是值得的。

  • Bootstrap的CSS与Angular Material的CSS冲突。当一起使用时,我注意到某些元素,如浮动按钮内的图标没有正确居中,等等。这应该不是一个困难的修复,但为什么要麻烦,当你可以使用Angular Flex?

希望能有所帮助。

inkz8wg9

inkz8wg94#

在2019年Angular 会议上,他们解释了是否可以将引导和Angular 材料结合使用。https://www.youtube.com/watch?v=xLj1qw82oAo&feature=youtu.be

相关问题