一段时间以来,我对Bootstrap非常熟悉。我正在学习Angular,现在正在看MD Bootstrap和Angular Material。
但是我有点困惑。可以将这两个框架(特别是它们的组件)用作Bootstrap的补充吗?
我知道可以用它们代替Bootstrap,但是如果我喜欢Bootstrap并只想使用Angular Material中的2个组件怎么办?
例如Sidenav
Bootstrap没有本地的sidenav,所以我想看看Angular Materialials sidenav是否可以工作...
答案 0 :(得分:1)
是的,您可以使用Angular Material作为引导的补充。
我个人使用了角度材料表
在我的许多项目中都加载了动态数据。
我还使用了角材料的自动完成组件。
最好的部分是这些组件很容易可配置。
答案 1 :(得分:1)
MD Bootstrap和Angular Material是两个不同的软件包,试图实现相同的目的,并提供现成的组件。
在当前的开发场景中,显然不需要像过去那样使用Bootstrap。现在,大多数情况下,Bootstrap用于布局结构化,如果只想将其用于布局(bootstrap-grid.min.css
,则可以得到Bootstrap的修剪版本。另外,Bootstrap尝试支持大多数浏览器,包括IE10和11。
另一方面,Angular Material专注于组件及其行为。并且几乎可以在所有现代浏览器(Chrome,主要是Chrome)上使用,并且在布局方面几乎一无所获。它确实支持主题,自定义样式等。
您可以在您的项目中同时使用它们,它们都很稳定并且有很多社区支持。但是它们在自己的方式上有很大的不同。您最好只使用其中之一。
但是,如果您确实需要某些组件,则仍然可以从Angular材质导入单个模块,而无需导入完整的材质模块并使用它,从而确保了最小的捆束尺寸。因此,我建议您使用MD-bootstrap作为主要组件库,并从Angular材质中导入2或3个组件。您将必须为Angular材质组件添加自定义样式。
答案 2 :(得分:1)
我已经尝试过使用引导程序和材料进行一些操作。
您可以一起构建一些东西。
其中说明了如何与scss一起构建美好事物。
我喜欢将所有bootstrap实用程序类与材料一起使用的解决方案。
因为bootstrap有很多很好的助手,基本样式,尤其是从normalize.css扩展而来的最好的reboot.scss。还有其他一些好东西,例如flex-box helper,也许还有纯CSS网格系统。
使用SCSS,您可以选择仅导入想要的部件,这很酷,它不导入所有内容。
_variables.scss
$link-color: #3f51b5;
$link-hover-color: currentColor;
$link-hover-decoration: none;
_reset.scss
* {
&:active,
:focus {
outline: none !important; // 1
}
}
label {
margin-bottom: 0; // 2
}
a:not(.mat-button):not(.mat-raised-button):not(.mat-fab):not(.mat-mini-fab):not([mat-list-item]) {
color: #3f51b5; // 3
}
main.scss
@import 'variables';
@import '~bootstrap/scss/functions';
@import '~bootstrap/scss/variables';
@import '~bootstrap/scss/mixins';
@import '~bootstrap/scss/reboot';
@import '~bootstrap/scss/utilities';
@import 'reset';
@import '~@angular/material/theming';
// Plus imports for other components in your app.
// Include the common styles for Angular Material. We include this here so that you only
// have to load a single css file for Angular Material in your app.
// **Be sure that you only ever include this mixin once!**
@include mat-core();
// Define the default theme (same as the example above).
$candy-app-primary: mat-palette($mat-indigo);
$candy-app-accent: mat-palette($mat-pink, A200, A100, A400);
$candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent);
// Include the default theme styles.
@include angular-material-theme($candy-app-theme);
// Define an alternate dark theme.
$dark-primary: mat-palette($mat-blue-grey);
$dark-accent: mat-palette($mat-amber, A200, A100, A400);
$dark-warn: mat-palette($mat-deep-orange);
$dark-theme: mat-dark-theme($dark-primary, $dark-accent, $dark-warn);
// Include the alternative theme styles inside of a block with a CSS class. You can make this
// CSS class whatever you want. In this example, any component inside of an element with
// `.unicorn-dark-theme` will be affected by this alternate dark theme instead of the default theme.
.unicorn-dark-theme {
@include angular-material-theme($dark-theme);
}
// Your styles